blob: b78b67ed7c4429428618860acf6f2016f44dd84a [file] [log] [blame]
Richard Hughes02c90d82018-08-09 12:13:03 +01001/*
Richard Hughes9dde04f2017-09-13 12:07:15 +01002 * Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
3 *
Mario Limonciello51308e62018-05-28 20:05:46 -05004 * SPDX-License-Identifier: LGPL-2.1+
Richard Hughes9dde04f2017-09-13 12:07:15 +01005 */
6
Richard Hughesbfd946e2019-02-09 08:21:40 +00007#pragma once
Richard Hughes9dde04f2017-09-13 12:07:15 +01008
9#include <fu-device.h>
Mario Limonciello7a3df4b2019-01-31 10:27:22 -060010#include <xmlb.h>
Richard Hughes9dde04f2017-09-13 12:07:15 +010011
12G_BEGIN_DECLS
13
Richard Hughes8ef139f2019-04-23 19:33:28 +010014typedef enum {
15 FU_DEVICE_INSTANCE_FLAG_NONE = 0,
16 FU_DEVICE_INSTANCE_FLAG_ONLY_QUIRKS = 1 << 0,
17 FU_DEVICE_INSTANCE_FLAG_LAST
18} FuDeviceInstanceFlags;
19
Richard Hughes2c0635a2018-09-04 14:52:46 +010020GPtrArray *fu_device_get_parent_guids (FuDevice *self);
21gboolean fu_device_has_parent_guid (FuDevice *self,
Richard Hughes5e447292018-04-27 14:25:54 +010022 const gchar *guid);
Richard Hughes841c1802018-09-07 15:32:32 +010023void fu_device_set_parent (FuDevice *self,
24 FuDevice *parent);
Richard Hughes2c0635a2018-09-04 14:52:46 +010025guint fu_device_get_order (FuDevice *self);
26void fu_device_set_order (FuDevice *self,
Richard Hughes9f86ade2018-05-10 21:11:22 +010027 guint order);
Richard Hughes2c0635a2018-09-04 14:52:46 +010028guint fu_device_get_priority (FuDevice *self);
29void fu_device_set_priority (FuDevice *self,
Richard Hughes81c427c2018-08-06 15:20:17 +010030 guint priority);
Richard Hughes2c0635a2018-09-04 14:52:46 +010031void fu_device_set_alternate (FuDevice *self,
Richard Hughese48351e2018-06-22 12:32:39 +010032 FuDevice *alternate);
Richard Hughesc125ec02018-09-05 19:35:17 +010033gboolean fu_device_ensure_id (FuDevice *self,
34 GError **error);
Mario Limonciello7a3df4b2019-01-31 10:27:22 -060035void fu_device_incorporate_from_component (FuDevice *device,
36 XbNode *component);
Richard Hughes1bc43232019-02-05 19:07:42 +000037void fu_device_convert_instance_ids (FuDevice *self);
Richard Hughes8ef139f2019-04-23 19:33:28 +010038void fu_device_add_instance_id_full (FuDevice *self,
39 const gchar *instance_id,
40 FuDeviceInstanceFlags flags);
Richard Hughes5e447292018-04-27 14:25:54 +010041
Richard Hughes9dde04f2017-09-13 12:07:15 +010042G_END_DECLS