trivial: Make FuSrecFirmwareRecord usable from non-C languages

This commit is contained in:
Richard Hughes 2021-05-11 09:58:15 +01:00
parent e8f95bc26d
commit 8fe6a1dd0c
4 changed files with 35 additions and 0 deletions

View File

@ -82,6 +82,37 @@ fu_srec_firmware_record_new (guint ln, FuFirmareSrecRecordKind kind, guint32 add
return rcd;
}
static FuSrecFirmwareRecord *
fu_srec_firmware_record_dup (const FuSrecFirmwareRecord *rcd)
{
FuSrecFirmwareRecord *dest;
g_return_val_if_fail (rcd != NULL, NULL);
dest = fu_srec_firmware_record_new (rcd->ln, rcd->kind, rcd->addr);
dest->buf = g_byte_array_ref (rcd->buf);
return dest;
}
/**
* fu_srec_firmware_record_get_type:
*
* Gets a specific type.
*
* Return value: a #GType
*
* Since: 1.6.1
**/
GType
fu_srec_firmware_record_get_type (void)
{
static GType type_id = 0;
if (!type_id) {
type_id = g_boxed_type_register_static ("FuSrecFirmwareRecord",
(GBoxedCopyFunc) fu_srec_firmware_record_dup,
(GBoxedFreeFunc) fu_srec_firmware_record_free);
}
return type_id;
}
static gboolean
fu_srec_firmware_tokenize (FuFirmware *firmware, GBytes *fw,
FwupdInstallFlags flags, GError **error)

View File

@ -9,6 +9,7 @@
#include "fu-firmware.h"
#define FU_TYPE_SREC_FIRMWARE (fu_srec_firmware_get_type ())
#define FU_TYPE_SREC_FIRMWARE_RECORD (fu_srec_firmware_record_get_type ())
G_DECLARE_DERIVABLE_TYPE (FuSrecFirmware, fu_srec_firmware, FU, SREC_FIRMWARE, FuFirmware)
struct _FuSrecFirmwareClass
@ -42,6 +43,7 @@ typedef struct {
FuFirmware *fu_srec_firmware_new (void);
GPtrArray *fu_srec_firmware_get_records (FuSrecFirmware *self);
GType fu_srec_firmware_record_get_type (void);
FuSrecFirmwareRecord *fu_srec_firmware_record_new (guint ln,
FuFirmareSrecRecordKind kind,
guint32 addr);

View File

@ -794,6 +794,7 @@ LIBFWUPDPLUGIN_1.6.0 {
LIBFWUPDPLUGIN_1.6.1 {
global:
fu_srec_firmware_record_get_type;
fu_version_string;
local: *;
} LIBFWUPDPLUGIN_1.6.0;

View File

@ -232,6 +232,7 @@ if get_option('introspection') and get_option('gusb')
'@INPUT@',
'@OUTPUT@',
'--override', 'fu_chunk_get_type', '1.5.6',
'--override', 'fu_srec_firmware_record_get_type', '1.6.1',
],
)