/* * Copyright (C) 2018 Richard Hughes * Copyright (C) 2019 Aleksander Morgado * * SPDX-License-Identifier: LGPL-2.1+ */ #ifndef __FU_MM_DEVICE_H #define __FU_MM_DEVICE_H #include #include #define FU_TYPE_MM_DEVICE (fu_mm_device_get_type()) G_DECLARE_FINAL_TYPE(FuMmDevice, fu_mm_device, FU, MM_DEVICE, FuDevice) FuMmDevice * fu_mm_device_new(MMManager *manager, MMObject *omodem); const gchar * fu_mm_device_get_inhibition_uid(FuMmDevice *device); const gchar * fu_mm_device_get_detach_fastboot_at(FuMmDevice *device); gint fu_mm_device_get_port_at_ifnum(FuMmDevice *device); gint fu_mm_device_get_port_qmi_ifnum(FuMmDevice *device); MMModemFirmwareUpdateMethod fu_mm_device_get_update_methods(FuMmDevice *device); /* support for udev-based devices */ typedef struct FuPluginMmInhibitedDeviceInfo FuPluginMmInhibitedDeviceInfo; struct FuPluginMmInhibitedDeviceInfo { gchar *inhibited_uid; gchar *physical_id; gchar *vendor; gchar *name; gchar *version; GPtrArray *guids; MMModemFirmwareUpdateMethod update_methods; gchar *detach_fastboot_at; gint port_at_ifnum; gint port_qmi_ifnum; }; FuPluginMmInhibitedDeviceInfo * fu_plugin_mm_inhibited_device_info_new(FuMmDevice *device); void fu_plugin_mm_inhibited_device_info_free(FuPluginMmInhibitedDeviceInfo *info); G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuPluginMmInhibitedDeviceInfo, fu_plugin_mm_inhibited_device_info_free); FuMmDevice * fu_mm_device_udev_new(MMManager *manager, FuPluginMmInhibitedDeviceInfo *info); void fu_mm_device_udev_add_port(FuMmDevice *device, const gchar *subsystem, const gchar *path, gint ifnum); #endif /* __FU_MM_DEVICE_H */