-
Notifications
You must be signed in to change notification settings - Fork 412
/
fu-srec-firmware.h
68 lines (61 loc) · 2.04 KB
/
fu-srec-firmware.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
* Copyright (C) 2019 Richard Hughes <richard@hughsie.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
#pragma once
#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 {
FuFirmwareClass parent_class;
};
/**
* FuFirmareSrecRecordKind:
* @FU_FIRMWARE_SREC_RECORD_KIND_S0_HEADER: Header
* @FU_FIRMWARE_SREC_RECORD_KIND_S1_DATA_16: 16 bit data
* @FU_FIRMWARE_SREC_RECORD_KIND_S2_DATA_24: 24 bit data
* @FU_FIRMWARE_SREC_RECORD_KIND_S3_DATA_32: 32 bit data
* @FU_FIRMWARE_SREC_RECORD_KIND_S4_RESERVED: Reserved value
* @FU_FIRMWARE_SREC_RECORD_KIND_S5_COUNT_16: 16 bit count
* @FU_FIRMWARE_SREC_RECORD_KIND_S6_COUNT_24: 24 bit count
* @FU_FIRMWARE_SREC_RECORD_KIND_S7_COUNT_32: 32 bit count
* @FU_FIRMWARE_SREC_RECORD_KIND_S8_TERMINATION_24: 24 bit termination
* @FU_FIRMWARE_SREC_RECORD_KIND_S9_TERMINATION_16: 16 bit termination
*
* The kind of SREC record kind.
**/
typedef enum {
FU_FIRMWARE_SREC_RECORD_KIND_S0_HEADER,
FU_FIRMWARE_SREC_RECORD_KIND_S1_DATA_16,
FU_FIRMWARE_SREC_RECORD_KIND_S2_DATA_24,
FU_FIRMWARE_SREC_RECORD_KIND_S3_DATA_32,
FU_FIRMWARE_SREC_RECORD_KIND_S4_RESERVED,
FU_FIRMWARE_SREC_RECORD_KIND_S5_COUNT_16,
FU_FIRMWARE_SREC_RECORD_KIND_S6_COUNT_24,
FU_FIRMWARE_SREC_RECORD_KIND_S7_COUNT_32,
FU_FIRMWARE_SREC_RECORD_KIND_S8_TERMINATION_24,
FU_FIRMWARE_SREC_RECORD_KIND_S9_TERMINATION_16,
/*< private >*/
FU_FIRMWARE_SREC_RECORD_KIND_LAST
} FuFirmareSrecRecordKind;
/**
* FuSrecFirmwareRecord:
*
* A single SREC record.
**/
typedef struct {
guint ln;
FuFirmareSrecRecordKind kind;
guint32 addr;
GByteArray *buf;
} FuSrecFirmwareRecord;
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);