Coverage Report

Created: 2025-08-26 06:55

/work/fu-synaprom-struct.c
Line
Count
Source (jump to first uncovered line)
1
/* auto-generated, do not modify */
2
#include "config.h"
3
4
#include "fu-synaprom-struct.h"
5
#include "fu-byte-array.h"
6
#include "fu-mem-private.h"
7
#include "fu-string.h"
8
9
#ifdef G_LOG_DOMAIN
10
  #undef G_LOG_DOMAIN
11
#endif
12
0
#define G_LOG_DOMAIN "FuStruct"
13
14
15
static const gchar *
16
fu_synaprom_product_to_string(FuSynapromProduct val)
17
0
{
18
0
    if (val == FU_SYNAPROM_PRODUCT_PROMETHEUS)
19
0
        return "prometheus";
20
0
    if (val == FU_SYNAPROM_PRODUCT_PROMETHEUSPBL)
21
0
        return "prometheuspbl";
22
0
    if (val == FU_SYNAPROM_PRODUCT_PROMETHEUSMSBL)
23
0
        return "prometheusmsbl";
24
0
    if (val == FU_SYNAPROM_PRODUCT_TRITON)
25
0
        return "triton";
26
0
    if (val == FU_SYNAPROM_PRODUCT_TRITONPBL)
27
0
        return "tritonpbl";
28
0
    if (val == FU_SYNAPROM_PRODUCT_TRITONMSBL)
29
0
        return "tritonmsbl";
30
0
    return NULL;
31
0
}
32
33
const gchar *
34
fu_synaprom_result_to_string(FuSynapromResult val)
35
0
{
36
0
    if (val == FU_SYNAPROM_RESULT_OK)
37
0
        return "ok";
38
0
    if (val == FU_SYNAPROM_RESULT_GEN_OPERATION_CANCELED)
39
0
        return "gen-operation-canceled";
40
0
    if (val == FU_SYNAPROM_RESULT_GEN_INVALID)
41
0
        return "gen-invalid";
42
0
    if (val == FU_SYNAPROM_RESULT_GEN_BAD_PARAM)
43
0
        return "gen-bad-param";
44
0
    if (val == FU_SYNAPROM_RESULT_GEN_NULL_POINTER)
45
0
        return "gen-null-pointer";
46
0
    if (val == FU_SYNAPROM_RESULT_GEN_UNEXPECTED_FORMAT)
47
0
        return "gen-unexpected-format";
48
0
    if (val == FU_SYNAPROM_RESULT_GEN_TIMEOUT)
49
0
        return "gen-timeout";
50
0
    if (val == FU_SYNAPROM_RESULT_GEN_OBJECT_DOESNT_EXIST)
51
0
        return "gen-object-doesnt-exist";
52
0
    if (val == FU_SYNAPROM_RESULT_GEN_ERROR)
53
0
        return "gen-error";
54
0
    if (val == FU_SYNAPROM_RESULT_SENSOR_MALFUNCTIONED)
55
0
        return "sensor-malfunctioned";
56
0
    if (val == FU_SYNAPROM_RESULT_SYS_OUT_OF_MEMORY)
57
0
        return "sys-out-of-memory";
58
0
    return NULL;
59
0
}
60
61
62
const gchar *
63
fu_synaprom_firmware_tag_to_string(FuSynapromFirmwareTag val)
64
4.16k
{
65
4.16k
    if (val == FU_SYNAPROM_FIRMWARE_TAG_MFW_UPDATE_HEADER)
66
119
        return "mfw-update-header";
67
4.04k
    if (val == FU_SYNAPROM_FIRMWARE_TAG_MFW_UPDATE_PAYLOAD)
68
50
        return "mfw-update-payload";
69
3.99k
    if (val == FU_SYNAPROM_FIRMWARE_TAG_CFG_UPDATE_HEADER)
70
37
        return "cfg-update-header";
71
3.95k
    if (val == FU_SYNAPROM_FIRMWARE_TAG_CFG_UPDATE_PAYLOAD)
72
44
        return "cfg-update-payload";
73
3.91k
    return NULL;
74
3.95k
}
75
/* getters */
76
77
/* setters */
78
/**
79
 * fu_struct_synaprom_request_set_cmd: (skip):
80
 **/
81
void
82
fu_struct_synaprom_request_set_cmd(FuStructSynapromRequest *st, FuSynapromCmd value)
83
0
{
84
0
    g_return_if_fail(st != NULL);
85
0
    st->data[0] = value;
86
0
}
87
/**
88
 * fu_struct_synaprom_request_new: (skip):
89
 **/
90
FuStructSynapromRequest *
91
fu_struct_synaprom_request_new(void)
92
0
{
93
0
    FuStructSynapromRequest *st = g_byte_array_sized_new(1);
94
0
    fu_byte_array_set_size(st, 1, 0x0);
95
0
    return st;
96
0
}
97
/* getters */
98
/**
99
 * fu_struct_synaprom_reply_generic_get_status: (skip):
100
 **/
101
guint16
102
fu_struct_synaprom_reply_generic_get_status(const FuStructSynapromReplyGeneric *st)
103
0
{
104
0
    g_return_val_if_fail(st != NULL, 0x0);
105
0
    return fu_memread_uint16(st->data + 0, G_LITTLE_ENDIAN);
106
0
}
107
108
/* setters */
109
/**
110
 * fu_struct_synaprom_reply_generic_to_string: (skip):
111
 **/
112
static gchar *
113
fu_struct_synaprom_reply_generic_to_string(const FuStructSynapromReplyGeneric *st)
114
0
{
115
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromReplyGeneric:\n");
116
0
    g_return_val_if_fail(st != NULL, NULL);
117
0
    g_string_append_printf(str, "  status: 0x%x\n",
118
0
                           (guint) fu_struct_synaprom_reply_generic_get_status(st));
119
0
    if (str->len > 0)
120
0
        g_string_set_size(str, str->len - 1);
121
0
    return g_string_free(g_steal_pointer(&str), FALSE);
122
0
}
123
static gboolean
124
fu_struct_synaprom_reply_generic_validate_internal(FuStructSynapromReplyGeneric *st, GError **error)
125
0
{
126
0
    g_return_val_if_fail(st != NULL, FALSE);
127
0
    return TRUE;
128
0
}
129
static gboolean
130
fu_struct_synaprom_reply_generic_parse_internal(FuStructSynapromReplyGeneric *st, GError **error)
131
0
{
132
0
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
133
0
        g_autofree gchar *str = fu_struct_synaprom_reply_generic_to_string(st);
134
0
        g_debug("%s", str);
135
0
    }
136
0
    if (!fu_struct_synaprom_reply_generic_validate_internal(st, error))
137
0
        return FALSE;
138
0
    return TRUE;
139
0
}
140
141
/**
142
 * fu_struct_synaprom_reply_generic_parse: (skip):
143
 **/
144
FuStructSynapromReplyGeneric *
145
fu_struct_synaprom_reply_generic_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
146
0
{
147
0
    g_autoptr(GByteArray) st = g_byte_array_new();
148
0
    g_return_val_if_fail(buf != NULL, NULL);
149
0
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
150
0
    if (!fu_memchk_read(bufsz, offset, 2, error)) {
151
0
        g_prefix_error_literal(error, "invalid struct FuStructSynapromReplyGeneric: ");
152
0
        return NULL;
153
0
    }
154
0
    g_byte_array_append(st, buf + offset, 2);
155
0
    if (!fu_struct_synaprom_reply_generic_parse_internal(st, error))
156
0
        return NULL;
157
0
    return g_steal_pointer(&st);
158
0
}
159
/* getters */
160
/**
161
 * fu_struct_synaprom_reply_get_version_get_status: (skip):
162
 **/
163
guint16
164
fu_struct_synaprom_reply_get_version_get_status(const FuStructSynapromReplyGetVersion *st)
165
0
{
166
0
    g_return_val_if_fail(st != NULL, 0x0);
167
0
    return fu_memread_uint16(st->data + 0, G_LITTLE_ENDIAN);
168
0
}
169
/**
170
 * fu_struct_synaprom_reply_get_version_get_buildtime: (skip):
171
 **/
172
guint32
173
fu_struct_synaprom_reply_get_version_get_buildtime(const FuStructSynapromReplyGetVersion *st)
174
0
{
175
0
    g_return_val_if_fail(st != NULL, 0x0);
176
0
    return fu_memread_uint32(st->data + 2, G_LITTLE_ENDIAN);
177
0
}
178
/**
179
 * fu_struct_synaprom_reply_get_version_get_buildnum: (skip):
180
 **/
181
guint32
182
fu_struct_synaprom_reply_get_version_get_buildnum(const FuStructSynapromReplyGetVersion *st)
183
0
{
184
0
    g_return_val_if_fail(st != NULL, 0x0);
185
0
    return fu_memread_uint32(st->data + 6, G_LITTLE_ENDIAN);
186
0
}
187
/**
188
 * fu_struct_synaprom_reply_get_version_get_vmajor: (skip):
189
 **/
190
guint8
191
fu_struct_synaprom_reply_get_version_get_vmajor(const FuStructSynapromReplyGetVersion *st)
192
0
{
193
0
    g_return_val_if_fail(st != NULL, 0x0);
194
0
    return st->data[10];
195
0
}
196
/**
197
 * fu_struct_synaprom_reply_get_version_get_vminor: (skip):
198
 **/
199
guint8
200
fu_struct_synaprom_reply_get_version_get_vminor(const FuStructSynapromReplyGetVersion *st)
201
0
{
202
0
    g_return_val_if_fail(st != NULL, 0x0);
203
0
    return st->data[11];
204
0
}
205
/**
206
 * fu_struct_synaprom_reply_get_version_get_target: (skip):
207
 **/
208
guint8
209
fu_struct_synaprom_reply_get_version_get_target(const FuStructSynapromReplyGetVersion *st)
210
0
{
211
0
    g_return_val_if_fail(st != NULL, 0x0);
212
0
    return st->data[12];
213
0
}
214
/**
215
 * fu_struct_synaprom_reply_get_version_get_product: (skip):
216
 **/
217
FuSynapromProduct
218
fu_struct_synaprom_reply_get_version_get_product(const FuStructSynapromReplyGetVersion *st)
219
0
{
220
0
    g_return_val_if_fail(st != NULL, 0x0);
221
0
    return st->data[13];
222
0
}
223
/**
224
 * fu_struct_synaprom_reply_get_version_get_siliconrev: (skip):
225
 **/
226
guint8
227
fu_struct_synaprom_reply_get_version_get_siliconrev(const FuStructSynapromReplyGetVersion *st)
228
0
{
229
0
    g_return_val_if_fail(st != NULL, 0x0);
230
0
    return st->data[14];
231
0
}
232
/**
233
 * fu_struct_synaprom_reply_get_version_get_formalrel: (skip):
234
 **/
235
guint8
236
fu_struct_synaprom_reply_get_version_get_formalrel(const FuStructSynapromReplyGetVersion *st)
237
0
{
238
0
    g_return_val_if_fail(st != NULL, 0x0);
239
0
    return st->data[15];
240
0
}
241
/**
242
 * fu_struct_synaprom_reply_get_version_get_platform: (skip):
243
 **/
244
guint8
245
fu_struct_synaprom_reply_get_version_get_platform(const FuStructSynapromReplyGetVersion *st)
246
0
{
247
0
    g_return_val_if_fail(st != NULL, 0x0);
248
0
    return st->data[16];
249
0
}
250
/**
251
 * fu_struct_synaprom_reply_get_version_get_patch: (skip):
252
 **/
253
guint8
254
fu_struct_synaprom_reply_get_version_get_patch(const FuStructSynapromReplyGetVersion *st)
255
0
{
256
0
    g_return_val_if_fail(st != NULL, 0x0);
257
0
    return st->data[17];
258
0
}
259
/**
260
 * fu_struct_synaprom_reply_get_version_get_serial_number: (skip):
261
 **/
262
const guint8 *
263
fu_struct_synaprom_reply_get_version_get_serial_number(const FuStructSynapromReplyGetVersion *st, gsize *bufsz)
264
0
{
265
0
    g_return_val_if_fail(st != NULL, NULL);
266
0
    if (bufsz != NULL)
267
0
        *bufsz = 6;
268
0
    return st->data + 18;
269
0
}
270
/**
271
 * fu_struct_synaprom_reply_get_version_get_security0: (skip):
272
 **/
273
guint8
274
fu_struct_synaprom_reply_get_version_get_security0(const FuStructSynapromReplyGetVersion *st)
275
0
{
276
0
    g_return_val_if_fail(st != NULL, 0x0);
277
0
    return st->data[24];
278
0
}
279
/**
280
 * fu_struct_synaprom_reply_get_version_get_security1: (skip):
281
 **/
282
guint8
283
fu_struct_synaprom_reply_get_version_get_security1(const FuStructSynapromReplyGetVersion *st)
284
0
{
285
0
    g_return_val_if_fail(st != NULL, 0x0);
286
0
    return st->data[25];
287
0
}
288
/**
289
 * fu_struct_synaprom_reply_get_version_get_patchsig: (skip):
290
 **/
291
guint32
292
fu_struct_synaprom_reply_get_version_get_patchsig(const FuStructSynapromReplyGetVersion *st)
293
0
{
294
0
    g_return_val_if_fail(st != NULL, 0x0);
295
0
    return fu_memread_uint32(st->data + 26, G_LITTLE_ENDIAN);
296
0
}
297
/**
298
 * fu_struct_synaprom_reply_get_version_get_iface: (skip):
299
 **/
300
guint8
301
fu_struct_synaprom_reply_get_version_get_iface(const FuStructSynapromReplyGetVersion *st)
302
0
{
303
0
    g_return_val_if_fail(st != NULL, 0x0);
304
0
    return st->data[30];
305
0
}
306
/**
307
 * fu_struct_synaprom_reply_get_version_get_otpsig: (skip):
308
 **/
309
const guint8 *
310
fu_struct_synaprom_reply_get_version_get_otpsig(const FuStructSynapromReplyGetVersion *st, gsize *bufsz)
311
0
{
312
0
    g_return_val_if_fail(st != NULL, NULL);
313
0
    if (bufsz != NULL)
314
0
        *bufsz = 3;
315
0
    return st->data + 31;
316
0
}
317
/**
318
 * fu_struct_synaprom_reply_get_version_get_otpspare1: (skip):
319
 **/
320
guint16
321
fu_struct_synaprom_reply_get_version_get_otpspare1(const FuStructSynapromReplyGetVersion *st)
322
0
{
323
0
    g_return_val_if_fail(st != NULL, 0x0);
324
0
    return fu_memread_uint16(st->data + 34, G_LITTLE_ENDIAN);
325
0
}
326
/**
327
 * fu_struct_synaprom_reply_get_version_get_device_type: (skip):
328
 **/
329
guint8
330
fu_struct_synaprom_reply_get_version_get_device_type(const FuStructSynapromReplyGetVersion *st)
331
0
{
332
0
    g_return_val_if_fail(st != NULL, 0x0);
333
0
    return st->data[37];
334
0
}
335
336
/* setters */
337
/**
338
 * fu_struct_synaprom_reply_get_version_to_string: (skip):
339
 **/
340
static gchar *
341
fu_struct_synaprom_reply_get_version_to_string(const FuStructSynapromReplyGetVersion *st)
342
0
{
343
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromReplyGetVersion:\n");
344
0
    g_return_val_if_fail(st != NULL, NULL);
345
0
    g_string_append_printf(str, "  status: 0x%x\n",
346
0
                           (guint) fu_struct_synaprom_reply_get_version_get_status(st));
347
0
    g_string_append_printf(str, "  buildtime: 0x%x\n",
348
0
                           (guint) fu_struct_synaprom_reply_get_version_get_buildtime(st));
349
0
    g_string_append_printf(str, "  buildnum: 0x%x\n",
350
0
                           (guint) fu_struct_synaprom_reply_get_version_get_buildnum(st));
351
0
    g_string_append_printf(str, "  vmajor: 0x%x\n",
352
0
                           (guint) fu_struct_synaprom_reply_get_version_get_vmajor(st));
353
0
    g_string_append_printf(str, "  vminor: 0x%x\n",
354
0
                           (guint) fu_struct_synaprom_reply_get_version_get_vminor(st));
355
0
    g_string_append_printf(str, "  target: 0x%x\n",
356
0
                           (guint) fu_struct_synaprom_reply_get_version_get_target(st));
357
0
    {
358
0
        const gchar *tmp = fu_synaprom_product_to_string(fu_struct_synaprom_reply_get_version_get_product(st));
359
0
        if (tmp != NULL) {
360
0
            g_string_append_printf(str, "  product: 0x%x [%s]\n", (guint) fu_struct_synaprom_reply_get_version_get_product(st), tmp);
361
0
        } else {
362
0
            g_string_append_printf(str, "  product: 0x%x\n", (guint) fu_struct_synaprom_reply_get_version_get_product(st));
363
0
        }
364
0
    }
365
0
    g_string_append_printf(str, "  siliconrev: 0x%x\n",
366
0
                           (guint) fu_struct_synaprom_reply_get_version_get_siliconrev(st));
367
0
    g_string_append_printf(str, "  formalrel: 0x%x\n",
368
0
                           (guint) fu_struct_synaprom_reply_get_version_get_formalrel(st));
369
0
    g_string_append_printf(str, "  platform: 0x%x\n",
370
0
                           (guint) fu_struct_synaprom_reply_get_version_get_platform(st));
371
0
    g_string_append_printf(str, "  patch: 0x%x\n",
372
0
                           (guint) fu_struct_synaprom_reply_get_version_get_patch(st));
373
0
    {
374
0
        gsize bufsz = 0;
375
0
        const guint8 *buf = fu_struct_synaprom_reply_get_version_get_serial_number(st, &bufsz);
376
0
        g_autoptr(GString) tmp = g_string_new(NULL);
377
0
        for (gsize i = 0; i < bufsz; i++)
378
0
            g_string_append_printf(tmp, "%02X", buf[i]);
379
0
        g_string_append_printf(str, "  serial_number: 0x%s\n", tmp->str);
380
0
    }
381
0
    g_string_append_printf(str, "  security0: 0x%x\n",
382
0
                           (guint) fu_struct_synaprom_reply_get_version_get_security0(st));
383
0
    g_string_append_printf(str, "  security1: 0x%x\n",
384
0
                           (guint) fu_struct_synaprom_reply_get_version_get_security1(st));
385
0
    g_string_append_printf(str, "  patchsig: 0x%x\n",
386
0
                           (guint) fu_struct_synaprom_reply_get_version_get_patchsig(st));
387
0
    g_string_append_printf(str, "  iface: 0x%x\n",
388
0
                           (guint) fu_struct_synaprom_reply_get_version_get_iface(st));
389
0
    {
390
0
        gsize bufsz = 0;
391
0
        const guint8 *buf = fu_struct_synaprom_reply_get_version_get_otpsig(st, &bufsz);
392
0
        g_autoptr(GString) tmp = g_string_new(NULL);
393
0
        for (gsize i = 0; i < bufsz; i++)
394
0
            g_string_append_printf(tmp, "%02X", buf[i]);
395
0
        g_string_append_printf(str, "  otpsig: 0x%s\n", tmp->str);
396
0
    }
397
0
    g_string_append_printf(str, "  otpspare1: 0x%x\n",
398
0
                           (guint) fu_struct_synaprom_reply_get_version_get_otpspare1(st));
399
0
    g_string_append_printf(str, "  device_type: 0x%x\n",
400
0
                           (guint) fu_struct_synaprom_reply_get_version_get_device_type(st));
401
0
    if (str->len > 0)
402
0
        g_string_set_size(str, str->len - 1);
403
0
    return g_string_free(g_steal_pointer(&str), FALSE);
404
0
}
405
static gboolean
406
fu_struct_synaprom_reply_get_version_validate_internal(FuStructSynapromReplyGetVersion *st, GError **error)
407
0
{
408
0
    g_return_val_if_fail(st != NULL, FALSE);
409
0
    return TRUE;
410
0
}
411
static gboolean
412
fu_struct_synaprom_reply_get_version_parse_internal(FuStructSynapromReplyGetVersion *st, GError **error)
413
0
{
414
0
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
415
0
        g_autofree gchar *str = fu_struct_synaprom_reply_get_version_to_string(st);
416
0
        g_debug("%s", str);
417
0
    }
418
0
    if (!fu_struct_synaprom_reply_get_version_validate_internal(st, error))
419
0
        return FALSE;
420
0
    return TRUE;
421
0
}
422
423
/**
424
 * fu_struct_synaprom_reply_get_version_parse: (skip):
425
 **/
426
FuStructSynapromReplyGetVersion *
427
fu_struct_synaprom_reply_get_version_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
428
0
{
429
0
    g_autoptr(GByteArray) st = g_byte_array_new();
430
0
    g_return_val_if_fail(buf != NULL, NULL);
431
0
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
432
0
    if (!fu_memchk_read(bufsz, offset, 38, error)) {
433
0
        g_prefix_error_literal(error, "invalid struct FuStructSynapromReplyGetVersion: ");
434
0
        return NULL;
435
0
    }
436
0
    g_byte_array_append(st, buf + offset, 38);
437
0
    if (!fu_struct_synaprom_reply_get_version_parse_internal(st, error))
438
0
        return NULL;
439
0
    return g_steal_pointer(&st);
440
0
}
441
/* getters */
442
/**
443
 * fu_struct_synaprom_mfw_hdr_get_product: (skip):
444
 **/
445
guint32
446
fu_struct_synaprom_mfw_hdr_get_product(const FuStructSynapromMfwHdr *st)
447
119
{
448
119
    g_return_val_if_fail(st != NULL, 0x0);
449
119
    return fu_memread_uint32(st->data + 0, G_LITTLE_ENDIAN);
450
119
}
451
/**
452
 * fu_struct_synaprom_mfw_hdr_get_id: (skip):
453
 **/
454
guint32
455
fu_struct_synaprom_mfw_hdr_get_id(const FuStructSynapromMfwHdr *st)
456
0
{
457
0
    g_return_val_if_fail(st != NULL, 0x0);
458
0
    return fu_memread_uint32(st->data + 4, G_LITTLE_ENDIAN);
459
0
}
460
/**
461
 * fu_struct_synaprom_mfw_hdr_get_buildtime: (skip):
462
 **/
463
guint32
464
fu_struct_synaprom_mfw_hdr_get_buildtime(const FuStructSynapromMfwHdr *st)
465
0
{
466
0
    g_return_val_if_fail(st != NULL, 0x0);
467
0
    return fu_memread_uint32(st->data + 8, G_LITTLE_ENDIAN);
468
0
}
469
/**
470
 * fu_struct_synaprom_mfw_hdr_get_buildnum: (skip):
471
 **/
472
guint32
473
fu_struct_synaprom_mfw_hdr_get_buildnum(const FuStructSynapromMfwHdr *st)
474
0
{
475
0
    g_return_val_if_fail(st != NULL, 0x0);
476
0
    return fu_memread_uint32(st->data + 12, G_LITTLE_ENDIAN);
477
0
}
478
/**
479
 * fu_struct_synaprom_mfw_hdr_get_vmajor: (skip):
480
 **/
481
guint8
482
fu_struct_synaprom_mfw_hdr_get_vmajor(const FuStructSynapromMfwHdr *st)
483
119
{
484
119
    g_return_val_if_fail(st != NULL, 0x0);
485
119
    return st->data[16];
486
119
}
487
/**
488
 * fu_struct_synaprom_mfw_hdr_get_vminor: (skip):
489
 **/
490
guint8
491
fu_struct_synaprom_mfw_hdr_get_vminor(const FuStructSynapromMfwHdr *st)
492
119
{
493
119
    g_return_val_if_fail(st != NULL, 0x0);
494
119
    return st->data[17];
495
119
}
496
/**
497
 * fu_struct_synaprom_mfw_hdr_get_unused: (skip):
498
 **/
499
const guint8 *
500
fu_struct_synaprom_mfw_hdr_get_unused(const FuStructSynapromMfwHdr *st, gsize *bufsz)
501
0
{
502
0
    g_return_val_if_fail(st != NULL, NULL);
503
0
    if (bufsz != NULL)
504
0
        *bufsz = 6;
505
0
    return st->data + 18;
506
0
}
507
508
/* setters */
509
/**
510
 * fu_struct_synaprom_mfw_hdr_set_product: (skip):
511
 **/
512
void
513
fu_struct_synaprom_mfw_hdr_set_product(FuStructSynapromMfwHdr *st, guint32 value)
514
126
{
515
126
    g_return_if_fail(st != NULL);
516
126
    fu_memwrite_uint32(st->data + 0, value, G_LITTLE_ENDIAN);
517
126
}
518
/**
519
 * fu_struct_synaprom_mfw_hdr_set_id: (skip):
520
 **/
521
void
522
fu_struct_synaprom_mfw_hdr_set_id(FuStructSynapromMfwHdr *st, guint32 value)
523
126
{
524
126
    g_return_if_fail(st != NULL);
525
126
    fu_memwrite_uint32(st->data + 4, value, G_LITTLE_ENDIAN);
526
126
}
527
/**
528
 * fu_struct_synaprom_mfw_hdr_set_buildtime: (skip):
529
 **/
530
void
531
fu_struct_synaprom_mfw_hdr_set_buildtime(FuStructSynapromMfwHdr *st, guint32 value)
532
126
{
533
126
    g_return_if_fail(st != NULL);
534
126
    fu_memwrite_uint32(st->data + 8, value, G_LITTLE_ENDIAN);
535
126
}
536
/**
537
 * fu_struct_synaprom_mfw_hdr_set_buildnum: (skip):
538
 **/
539
void
540
fu_struct_synaprom_mfw_hdr_set_buildnum(FuStructSynapromMfwHdr *st, guint32 value)
541
126
{
542
126
    g_return_if_fail(st != NULL);
543
126
    fu_memwrite_uint32(st->data + 12, value, G_LITTLE_ENDIAN);
544
126
}
545
/**
546
 * fu_struct_synaprom_mfw_hdr_set_vmajor: (skip):
547
 **/
548
void
549
fu_struct_synaprom_mfw_hdr_set_vmajor(FuStructSynapromMfwHdr *st, guint8 value)
550
126
{
551
126
    g_return_if_fail(st != NULL);
552
126
    st->data[16] = value;
553
126
}
554
/**
555
 * fu_struct_synaprom_mfw_hdr_set_vminor: (skip):
556
 **/
557
void
558
fu_struct_synaprom_mfw_hdr_set_vminor(FuStructSynapromMfwHdr *st, guint8 value)
559
126
{
560
126
    g_return_if_fail(st != NULL);
561
126
    st->data[17] = value;
562
126
}
563
/**
564
 * fu_struct_synaprom_mfw_hdr_set_unused: (skip):
565
 **/
566
gboolean
567
fu_struct_synaprom_mfw_hdr_set_unused(FuStructSynapromMfwHdr *st, const guint8 *buf, gsize bufsz, GError **error)
568
0
{
569
0
    g_return_val_if_fail(st != NULL, FALSE);
570
0
    g_return_val_if_fail(buf != NULL, FALSE);
571
0
    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
572
0
    return fu_memcpy_safe(st->data, st->len, 18, buf, bufsz, 0x0, bufsz, error);
573
0
}
574
/**
575
 * fu_struct_synaprom_mfw_hdr_new: (skip):
576
 **/
577
FuStructSynapromMfwHdr *
578
fu_struct_synaprom_mfw_hdr_new(void)
579
126
{
580
126
    FuStructSynapromMfwHdr *st = g_byte_array_sized_new(24);
581
126
    fu_byte_array_set_size(st, 24, 0x0);
582
126
    fu_struct_synaprom_mfw_hdr_set_id(st, 0xFF);
583
126
    fu_struct_synaprom_mfw_hdr_set_buildtime(st, 0xFF);
584
126
    fu_struct_synaprom_mfw_hdr_set_buildnum(st, 0xFF);
585
126
    fu_struct_synaprom_mfw_hdr_set_vmajor(st, 10);
586
126
    fu_struct_synaprom_mfw_hdr_set_vminor(st, 1);
587
126
    return st;
588
126
}
589
/**
590
 * fu_struct_synaprom_mfw_hdr_to_string: (skip):
591
 **/
592
static gchar *
593
fu_struct_synaprom_mfw_hdr_to_string(const FuStructSynapromMfwHdr *st)
594
0
{
595
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromMfwHdr:\n");
596
0
    g_return_val_if_fail(st != NULL, NULL);
597
0
    g_string_append_printf(str, "  product: 0x%x\n",
598
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_product(st));
599
0
    g_string_append_printf(str, "  id: 0x%x\n",
600
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_id(st));
601
0
    g_string_append_printf(str, "  buildtime: 0x%x\n",
602
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_buildtime(st));
603
0
    g_string_append_printf(str, "  buildnum: 0x%x\n",
604
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_buildnum(st));
605
0
    g_string_append_printf(str, "  vmajor: 0x%x\n",
606
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_vmajor(st));
607
0
    g_string_append_printf(str, "  vminor: 0x%x\n",
608
0
                           (guint) fu_struct_synaprom_mfw_hdr_get_vminor(st));
609
0
    {
610
0
        gsize bufsz = 0;
611
0
        const guint8 *buf = fu_struct_synaprom_mfw_hdr_get_unused(st, &bufsz);
612
0
        g_autoptr(GString) tmp = g_string_new(NULL);
613
0
        for (gsize i = 0; i < bufsz; i++)
614
0
            g_string_append_printf(tmp, "%02X", buf[i]);
615
0
        g_string_append_printf(str, "  unused: 0x%s\n", tmp->str);
616
0
    }
617
0
    if (str->len > 0)
618
0
        g_string_set_size(str, str->len - 1);
619
0
    return g_string_free(g_steal_pointer(&str), FALSE);
620
0
}
621
static gboolean
622
fu_struct_synaprom_mfw_hdr_validate_internal(FuStructSynapromMfwHdr *st, GError **error)
623
119
{
624
119
    g_return_val_if_fail(st != NULL, FALSE);
625
119
    return TRUE;
626
119
}
627
static gboolean
628
fu_struct_synaprom_mfw_hdr_parse_internal(FuStructSynapromMfwHdr *st, GError **error)
629
119
{
630
119
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
631
0
        g_autofree gchar *str = fu_struct_synaprom_mfw_hdr_to_string(st);
632
0
        g_debug("%s", str);
633
0
    }
634
119
    if (!fu_struct_synaprom_mfw_hdr_validate_internal(st, error))
635
0
        return FALSE;
636
119
    return TRUE;
637
119
}
638
/**
639
 * fu_struct_synaprom_mfw_hdr_parse_stream: (skip):
640
 **/
641
FuStructSynapromMfwHdr *
642
fu_struct_synaprom_mfw_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error)
643
119
{
644
119
    g_autoptr(GByteArray) st = NULL;
645
119
    st = fu_input_stream_read_byte_array(stream, offset, 24, NULL, error);
646
119
    if (st == NULL) {
647
0
        g_prefix_error(error, "FuStructSynapromMfwHdr failed read of 0x%x: ", (guint) 24);
648
0
        return NULL;
649
0
    }
650
119
    if (st->len != 24) {
651
0
        g_set_error(error,
652
0
                    FWUPD_ERROR,
653
0
                    FWUPD_ERROR_INVALID_DATA,
654
0
                    "FuStructSynapromMfwHdr requested 0x%x and got 0x%x",
655
0
                    (guint) 24,
656
0
                    (guint) st->len);
657
0
        return NULL;
658
0
    }
659
119
    if (!fu_struct_synaprom_mfw_hdr_parse_internal(st, error))
660
0
        return NULL;
661
119
    return g_steal_pointer(&st);
662
119
}
663
/* getters */
664
/**
665
 * fu_struct_synaprom_hdr_get_tag: (skip):
666
 **/
667
FuSynapromFirmwareTag
668
fu_struct_synaprom_hdr_get_tag(const FuStructSynapromHdr *st)
669
4.39k
{
670
4.39k
    g_return_val_if_fail(st != NULL, 0x0);
671
4.39k
    return fu_memread_uint16(st->data + 0, G_LITTLE_ENDIAN);
672
4.39k
}
673
/**
674
 * fu_struct_synaprom_hdr_get_bufsz: (skip):
675
 **/
676
guint32
677
fu_struct_synaprom_hdr_get_bufsz(const FuStructSynapromHdr *st)
678
4.36k
{
679
4.36k
    g_return_val_if_fail(st != NULL, 0x0);
680
4.36k
    return fu_memread_uint32(st->data + 2, G_LITTLE_ENDIAN);
681
4.36k
}
682
683
/* setters */
684
/**
685
 * fu_struct_synaprom_hdr_set_tag: (skip):
686
 **/
687
void
688
fu_struct_synaprom_hdr_set_tag(FuStructSynapromHdr *st, FuSynapromFirmwareTag value)
689
126
{
690
126
    g_return_if_fail(st != NULL);
691
126
    fu_memwrite_uint16(st->data + 0, value, G_LITTLE_ENDIAN);
692
126
}
693
/**
694
 * fu_struct_synaprom_hdr_set_bufsz: (skip):
695
 **/
696
void
697
fu_struct_synaprom_hdr_set_bufsz(FuStructSynapromHdr *st, guint32 value)
698
126
{
699
126
    g_return_if_fail(st != NULL);
700
126
    fu_memwrite_uint32(st->data + 2, value, G_LITTLE_ENDIAN);
701
126
}
702
/**
703
 * fu_struct_synaprom_hdr_new: (skip):
704
 **/
705
FuStructSynapromHdr *
706
fu_struct_synaprom_hdr_new(void)
707
126
{
708
126
    FuStructSynapromHdr *st = g_byte_array_sized_new(6);
709
126
    fu_byte_array_set_size(st, 6, 0x0);
710
126
    return st;
711
126
}
712
/**
713
 * fu_struct_synaprom_hdr_to_string: (skip):
714
 **/
715
static gchar *
716
fu_struct_synaprom_hdr_to_string(const FuStructSynapromHdr *st)
717
0
{
718
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromHdr:\n");
719
0
    g_return_val_if_fail(st != NULL, NULL);
720
0
    {
721
0
        const gchar *tmp = fu_synaprom_firmware_tag_to_string(fu_struct_synaprom_hdr_get_tag(st));
722
0
        if (tmp != NULL) {
723
0
            g_string_append_printf(str, "  tag: 0x%x [%s]\n", (guint) fu_struct_synaprom_hdr_get_tag(st), tmp);
724
0
        } else {
725
0
            g_string_append_printf(str, "  tag: 0x%x\n", (guint) fu_struct_synaprom_hdr_get_tag(st));
726
0
        }
727
0
    }
728
0
    g_string_append_printf(str, "  bufsz: 0x%x\n",
729
0
                           (guint) fu_struct_synaprom_hdr_get_bufsz(st));
730
0
    if (str->len > 0)
731
0
        g_string_set_size(str, str->len - 1);
732
0
    return g_string_free(g_steal_pointer(&str), FALSE);
733
0
}
734
static gboolean
735
fu_struct_synaprom_hdr_validate_internal(FuStructSynapromHdr *st, GError **error)
736
4.39k
{
737
4.39k
    g_return_val_if_fail(st != NULL, FALSE);
738
4.39k
    return TRUE;
739
4.39k
}
740
static gboolean
741
fu_struct_synaprom_hdr_parse_internal(FuStructSynapromHdr *st, GError **error)
742
4.39k
{
743
4.39k
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
744
0
        g_autofree gchar *str = fu_struct_synaprom_hdr_to_string(st);
745
0
        g_debug("%s", str);
746
0
    }
747
4.39k
    if (!fu_struct_synaprom_hdr_validate_internal(st, error))
748
0
        return FALSE;
749
4.39k
    return TRUE;
750
4.39k
}
751
/**
752
 * fu_struct_synaprom_hdr_parse_stream: (skip):
753
 **/
754
FuStructSynapromHdr *
755
fu_struct_synaprom_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error)
756
4.39k
{
757
4.39k
    g_autoptr(GByteArray) st = NULL;
758
4.39k
    st = fu_input_stream_read_byte_array(stream, offset, 6, NULL, error);
759
4.39k
    if (st == NULL) {
760
0
        g_prefix_error(error, "FuStructSynapromHdr failed read of 0x%x: ", (guint) 6);
761
0
        return NULL;
762
0
    }
763
4.39k
    if (st->len != 6) {
764
0
        g_set_error(error,
765
0
                    FWUPD_ERROR,
766
0
                    FWUPD_ERROR_INVALID_DATA,
767
0
                    "FuStructSynapromHdr requested 0x%x and got 0x%x",
768
0
                    (guint) 6,
769
0
                    (guint) st->len);
770
0
        return NULL;
771
0
    }
772
4.39k
    if (!fu_struct_synaprom_hdr_parse_internal(st, error))
773
0
        return NULL;
774
4.39k
    return g_steal_pointer(&st);
775
4.39k
}
776
/* getters */
777
/**
778
 * fu_struct_synaprom_cfg_hdr_get_product: (skip):
779
 **/
780
guint32
781
fu_struct_synaprom_cfg_hdr_get_product(const FuStructSynapromCfgHdr *st)
782
0
{
783
0
    g_return_val_if_fail(st != NULL, 0x0);
784
0
    return fu_memread_uint32(st->data + 0, G_LITTLE_ENDIAN);
785
0
}
786
/**
787
 * fu_struct_synaprom_cfg_hdr_get_id1: (skip):
788
 **/
789
guint32
790
fu_struct_synaprom_cfg_hdr_get_id1(const FuStructSynapromCfgHdr *st)
791
0
{
792
0
    g_return_val_if_fail(st != NULL, 0x0);
793
0
    return fu_memread_uint32(st->data + 4, G_LITTLE_ENDIAN);
794
0
}
795
/**
796
 * fu_struct_synaprom_cfg_hdr_get_id2: (skip):
797
 **/
798
guint32
799
fu_struct_synaprom_cfg_hdr_get_id2(const FuStructSynapromCfgHdr *st)
800
0
{
801
0
    g_return_val_if_fail(st != NULL, 0x0);
802
0
    return fu_memread_uint32(st->data + 8, G_LITTLE_ENDIAN);
803
0
}
804
/**
805
 * fu_struct_synaprom_cfg_hdr_get_version: (skip):
806
 **/
807
guint16
808
fu_struct_synaprom_cfg_hdr_get_version(const FuStructSynapromCfgHdr *st)
809
0
{
810
0
    g_return_val_if_fail(st != NULL, 0x0);
811
0
    return fu_memread_uint16(st->data + 12, G_LITTLE_ENDIAN);
812
0
}
813
814
/* setters */
815
/**
816
 * fu_struct_synaprom_cfg_hdr_to_string: (skip):
817
 **/
818
static gchar *
819
fu_struct_synaprom_cfg_hdr_to_string(const FuStructSynapromCfgHdr *st)
820
0
{
821
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromCfgHdr:\n");
822
0
    g_return_val_if_fail(st != NULL, NULL);
823
0
    g_string_append_printf(str, "  product: 0x%x\n",
824
0
                           (guint) fu_struct_synaprom_cfg_hdr_get_product(st));
825
0
    g_string_append_printf(str, "  id1: 0x%x\n",
826
0
                           (guint) fu_struct_synaprom_cfg_hdr_get_id1(st));
827
0
    g_string_append_printf(str, "  id2: 0x%x\n",
828
0
                           (guint) fu_struct_synaprom_cfg_hdr_get_id2(st));
829
0
    g_string_append_printf(str, "  version: 0x%x\n",
830
0
                           (guint) fu_struct_synaprom_cfg_hdr_get_version(st));
831
0
    if (str->len > 0)
832
0
        g_string_set_size(str, str->len - 1);
833
0
    return g_string_free(g_steal_pointer(&str), FALSE);
834
0
}
835
static gboolean
836
fu_struct_synaprom_cfg_hdr_validate_internal(FuStructSynapromCfgHdr *st, GError **error)
837
0
{
838
0
    g_return_val_if_fail(st != NULL, FALSE);
839
0
    return TRUE;
840
0
}
841
static gboolean
842
fu_struct_synaprom_cfg_hdr_parse_internal(FuStructSynapromCfgHdr *st, GError **error)
843
0
{
844
0
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
845
0
        g_autofree gchar *str = fu_struct_synaprom_cfg_hdr_to_string(st);
846
0
        g_debug("%s", str);
847
0
    }
848
0
    if (!fu_struct_synaprom_cfg_hdr_validate_internal(st, error))
849
0
        return FALSE;
850
0
    return TRUE;
851
0
}
852
/**
853
 * fu_struct_synaprom_cfg_hdr_parse_stream: (skip):
854
 **/
855
FuStructSynapromCfgHdr *
856
fu_struct_synaprom_cfg_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error)
857
0
{
858
0
    g_autoptr(GByteArray) st = NULL;
859
0
    st = fu_input_stream_read_byte_array(stream, offset, 16, NULL, error);
860
0
    if (st == NULL) {
861
0
        g_prefix_error(error, "FuStructSynapromCfgHdr failed read of 0x%x: ", (guint) 16);
862
0
        return NULL;
863
0
    }
864
0
    if (st->len != 16) {
865
0
        g_set_error(error,
866
0
                    FWUPD_ERROR,
867
0
                    FWUPD_ERROR_INVALID_DATA,
868
0
                    "FuStructSynapromCfgHdr requested 0x%x and got 0x%x",
869
0
                    (guint) 16,
870
0
                    (guint) st->len);
871
0
        return NULL;
872
0
    }
873
0
    if (!fu_struct_synaprom_cfg_hdr_parse_internal(st, error))
874
0
        return NULL;
875
0
    return g_steal_pointer(&st);
876
0
}
877
/* getters */
878
/**
879
 * fu_struct_synaprom_iota_config_version_get_config_id1: (skip):
880
 **/
881
guint32
882
fu_struct_synaprom_iota_config_version_get_config_id1(const FuStructSynapromIotaConfigVersion *st)
883
0
{
884
0
    g_return_val_if_fail(st != NULL, 0x0);
885
0
    return fu_memread_uint32(st->data + 0, G_LITTLE_ENDIAN);
886
0
}
887
/**
888
 * fu_struct_synaprom_iota_config_version_get_config_id2: (skip):
889
 **/
890
guint32
891
fu_struct_synaprom_iota_config_version_get_config_id2(const FuStructSynapromIotaConfigVersion *st)
892
0
{
893
0
    g_return_val_if_fail(st != NULL, 0x0);
894
0
    return fu_memread_uint32(st->data + 4, G_LITTLE_ENDIAN);
895
0
}
896
/**
897
 * fu_struct_synaprom_iota_config_version_get_version: (skip):
898
 **/
899
guint16
900
fu_struct_synaprom_iota_config_version_get_version(const FuStructSynapromIotaConfigVersion *st)
901
0
{
902
0
    g_return_val_if_fail(st != NULL, 0x0);
903
0
    return fu_memread_uint16(st->data + 8, G_LITTLE_ENDIAN);
904
0
}
905
906
/* setters */
907
/**
908
 * fu_struct_synaprom_iota_config_version_to_string: (skip):
909
 **/
910
static gchar *
911
fu_struct_synaprom_iota_config_version_to_string(const FuStructSynapromIotaConfigVersion *st)
912
0
{
913
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromIotaConfigVersion:\n");
914
0
    g_return_val_if_fail(st != NULL, NULL);
915
0
    g_string_append_printf(str, "  config_id1: 0x%x\n",
916
0
                           (guint) fu_struct_synaprom_iota_config_version_get_config_id1(st));
917
0
    g_string_append_printf(str, "  config_id2: 0x%x\n",
918
0
                           (guint) fu_struct_synaprom_iota_config_version_get_config_id2(st));
919
0
    g_string_append_printf(str, "  version: 0x%x\n",
920
0
                           (guint) fu_struct_synaprom_iota_config_version_get_version(st));
921
0
    if (str->len > 0)
922
0
        g_string_set_size(str, str->len - 1);
923
0
    return g_string_free(g_steal_pointer(&str), FALSE);
924
0
}
925
static gboolean
926
fu_struct_synaprom_iota_config_version_validate_internal(FuStructSynapromIotaConfigVersion *st, GError **error)
927
0
{
928
0
    g_return_val_if_fail(st != NULL, FALSE);
929
0
    return TRUE;
930
0
}
931
static gboolean
932
fu_struct_synaprom_iota_config_version_parse_internal(FuStructSynapromIotaConfigVersion *st, GError **error)
933
0
{
934
0
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
935
0
        g_autofree gchar *str = fu_struct_synaprom_iota_config_version_to_string(st);
936
0
        g_debug("%s", str);
937
0
    }
938
0
    if (!fu_struct_synaprom_iota_config_version_validate_internal(st, error))
939
0
        return FALSE;
940
0
    return TRUE;
941
0
}
942
943
/**
944
 * fu_struct_synaprom_iota_config_version_parse: (skip):
945
 **/
946
FuStructSynapromIotaConfigVersion *
947
fu_struct_synaprom_iota_config_version_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
948
0
{
949
0
    g_autoptr(GByteArray) st = g_byte_array_new();
950
0
    g_return_val_if_fail(buf != NULL, NULL);
951
0
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
952
0
    if (!fu_memchk_read(bufsz, offset, 16, error)) {
953
0
        g_prefix_error_literal(error, "invalid struct FuStructSynapromIotaConfigVersion: ");
954
0
        return NULL;
955
0
    }
956
0
    g_byte_array_append(st, buf + offset, 16);
957
0
    if (!fu_struct_synaprom_iota_config_version_parse_internal(st, error))
958
0
        return NULL;
959
0
    return g_steal_pointer(&st);
960
0
}
961
/* getters */
962
/**
963
 * fu_struct_synaprom_reply_iota_find_hdr_get_status: (skip):
964
 **/
965
guint16
966
fu_struct_synaprom_reply_iota_find_hdr_get_status(const FuStructSynapromReplyIotaFindHdr *st)
967
0
{
968
0
    g_return_val_if_fail(st != NULL, 0x0);
969
0
    return fu_memread_uint16(st->data + 0, G_LITTLE_ENDIAN);
970
0
}
971
/**
972
 * fu_struct_synaprom_reply_iota_find_hdr_get_fullsize: (skip):
973
 **/
974
guint32
975
fu_struct_synaprom_reply_iota_find_hdr_get_fullsize(const FuStructSynapromReplyIotaFindHdr *st)
976
0
{
977
0
    g_return_val_if_fail(st != NULL, 0x0);
978
0
    return fu_memread_uint32(st->data + 2, G_LITTLE_ENDIAN);
979
0
}
980
/**
981
 * fu_struct_synaprom_reply_iota_find_hdr_get_nbytes: (skip):
982
 **/
983
guint16
984
fu_struct_synaprom_reply_iota_find_hdr_get_nbytes(const FuStructSynapromReplyIotaFindHdr *st)
985
0
{
986
0
    g_return_val_if_fail(st != NULL, 0x0);
987
0
    return fu_memread_uint16(st->data + 6, G_LITTLE_ENDIAN);
988
0
}
989
/**
990
 * fu_struct_synaprom_reply_iota_find_hdr_get_itype: (skip):
991
 **/
992
guint16
993
fu_struct_synaprom_reply_iota_find_hdr_get_itype(const FuStructSynapromReplyIotaFindHdr *st)
994
0
{
995
0
    g_return_val_if_fail(st != NULL, 0x0);
996
0
    return fu_memread_uint16(st->data + 8, G_LITTLE_ENDIAN);
997
0
}
998
999
/* setters */
1000
/**
1001
 * fu_struct_synaprom_reply_iota_find_hdr_to_string: (skip):
1002
 **/
1003
static gchar *
1004
fu_struct_synaprom_reply_iota_find_hdr_to_string(const FuStructSynapromReplyIotaFindHdr *st)
1005
0
{
1006
0
    g_autoptr(GString) str = g_string_new("FuStructSynapromReplyIotaFindHdr:\n");
1007
0
    g_return_val_if_fail(st != NULL, NULL);
1008
0
    g_string_append_printf(str, "  status: 0x%x\n",
1009
0
                           (guint) fu_struct_synaprom_reply_iota_find_hdr_get_status(st));
1010
0
    g_string_append_printf(str, "  fullsize: 0x%x\n",
1011
0
                           (guint) fu_struct_synaprom_reply_iota_find_hdr_get_fullsize(st));
1012
0
    g_string_append_printf(str, "  nbytes: 0x%x\n",
1013
0
                           (guint) fu_struct_synaprom_reply_iota_find_hdr_get_nbytes(st));
1014
0
    g_string_append_printf(str, "  itype: 0x%x\n",
1015
0
                           (guint) fu_struct_synaprom_reply_iota_find_hdr_get_itype(st));
1016
0
    if (str->len > 0)
1017
0
        g_string_set_size(str, str->len - 1);
1018
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1019
0
}
1020
static gboolean
1021
fu_struct_synaprom_reply_iota_find_hdr_validate_internal(FuStructSynapromReplyIotaFindHdr *st, GError **error)
1022
0
{
1023
0
    g_return_val_if_fail(st != NULL, FALSE);
1024
0
    return TRUE;
1025
0
}
1026
static gboolean
1027
fu_struct_synaprom_reply_iota_find_hdr_parse_internal(FuStructSynapromReplyIotaFindHdr *st, GError **error)
1028
0
{
1029
0
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
1030
0
        g_autofree gchar *str = fu_struct_synaprom_reply_iota_find_hdr_to_string(st);
1031
0
        g_debug("%s", str);
1032
0
    }
1033
0
    if (!fu_struct_synaprom_reply_iota_find_hdr_validate_internal(st, error))
1034
0
        return FALSE;
1035
0
    return TRUE;
1036
0
}
1037
1038
/**
1039
 * fu_struct_synaprom_reply_iota_find_hdr_parse: (skip):
1040
 **/
1041
FuStructSynapromReplyIotaFindHdr *
1042
fu_struct_synaprom_reply_iota_find_hdr_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1043
0
{
1044
0
    g_autoptr(GByteArray) st = g_byte_array_new();
1045
0
    g_return_val_if_fail(buf != NULL, NULL);
1046
0
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1047
0
    if (!fu_memchk_read(bufsz, offset, 10, error)) {
1048
0
        g_prefix_error_literal(error, "invalid struct FuStructSynapromReplyIotaFindHdr: ");
1049
0
        return NULL;
1050
0
    }
1051
0
    g_byte_array_append(st, buf + offset, 10);
1052
0
    if (!fu_struct_synaprom_reply_iota_find_hdr_parse_internal(st, error))
1053
0
        return NULL;
1054
0
    return g_steal_pointer(&st);
1055
0
}
1056
/* getters */
1057
/**
1058
 * fu_struct_synaprom_cmd_iota_find_get_itype: (skip):
1059
 **/
1060
guint16
1061
fu_struct_synaprom_cmd_iota_find_get_itype(const FuStructSynapromCmdIotaFind *st)
1062
0
{
1063
0
    g_return_val_if_fail(st != NULL, 0x0);
1064
0
    return fu_memread_uint16(st->data + 0, G_LITTLE_ENDIAN);
1065
0
}
1066
/**
1067
 * fu_struct_synaprom_cmd_iota_find_get_flags: (skip):
1068
 **/
1069
guint16
1070
fu_struct_synaprom_cmd_iota_find_get_flags(const FuStructSynapromCmdIotaFind *st)
1071
0
{
1072
0
    g_return_val_if_fail(st != NULL, 0x0);
1073
0
    return fu_memread_uint16(st->data + 2, G_LITTLE_ENDIAN);
1074
0
}
1075
/**
1076
 * fu_struct_synaprom_cmd_iota_find_get_maxniotas: (skip):
1077
 **/
1078
guint8
1079
fu_struct_synaprom_cmd_iota_find_get_maxniotas(const FuStructSynapromCmdIotaFind *st)
1080
0
{
1081
0
    g_return_val_if_fail(st != NULL, 0x0);
1082
0
    return st->data[4];
1083
0
}
1084
/**
1085
 * fu_struct_synaprom_cmd_iota_find_get_firstidx: (skip):
1086
 **/
1087
guint8
1088
fu_struct_synaprom_cmd_iota_find_get_firstidx(const FuStructSynapromCmdIotaFind *st)
1089
0
{
1090
0
    g_return_val_if_fail(st != NULL, 0x0);
1091
0
    return st->data[5];
1092
0
}
1093
/**
1094
 * fu_struct_synaprom_cmd_iota_find_get_offset: (skip):
1095
 **/
1096
guint32
1097
fu_struct_synaprom_cmd_iota_find_get_offset(const FuStructSynapromCmdIotaFind *st)
1098
0
{
1099
0
    g_return_val_if_fail(st != NULL, 0x0);
1100
0
    return fu_memread_uint32(st->data + 8, G_LITTLE_ENDIAN);
1101
0
}
1102
/**
1103
 * fu_struct_synaprom_cmd_iota_find_get_nbytes: (skip):
1104
 **/
1105
guint32
1106
fu_struct_synaprom_cmd_iota_find_get_nbytes(const FuStructSynapromCmdIotaFind *st)
1107
0
{
1108
0
    g_return_val_if_fail(st != NULL, 0x0);
1109
0
    return fu_memread_uint32(st->data + 12, G_LITTLE_ENDIAN);
1110
0
}
1111
1112
/* setters */
1113
/**
1114
 * fu_struct_synaprom_cmd_iota_find_set_itype: (skip):
1115
 **/
1116
void
1117
fu_struct_synaprom_cmd_iota_find_set_itype(FuStructSynapromCmdIotaFind *st, guint16 value)
1118
0
{
1119
0
    g_return_if_fail(st != NULL);
1120
0
    fu_memwrite_uint16(st->data + 0, value, G_LITTLE_ENDIAN);
1121
0
}
1122
/**
1123
 * fu_struct_synaprom_cmd_iota_find_set_flags: (skip):
1124
 **/
1125
void
1126
fu_struct_synaprom_cmd_iota_find_set_flags(FuStructSynapromCmdIotaFind *st, guint16 value)
1127
0
{
1128
0
    g_return_if_fail(st != NULL);
1129
0
    fu_memwrite_uint16(st->data + 2, value, G_LITTLE_ENDIAN);
1130
0
}
1131
/**
1132
 * fu_struct_synaprom_cmd_iota_find_set_maxniotas: (skip):
1133
 **/
1134
void
1135
fu_struct_synaprom_cmd_iota_find_set_maxniotas(FuStructSynapromCmdIotaFind *st, guint8 value)
1136
0
{
1137
0
    g_return_if_fail(st != NULL);
1138
0
    st->data[4] = value;
1139
0
}
1140
/**
1141
 * fu_struct_synaprom_cmd_iota_find_set_firstidx: (skip):
1142
 **/
1143
void
1144
fu_struct_synaprom_cmd_iota_find_set_firstidx(FuStructSynapromCmdIotaFind *st, guint8 value)
1145
0
{
1146
0
    g_return_if_fail(st != NULL);
1147
0
    st->data[5] = value;
1148
0
}
1149
/**
1150
 * fu_struct_synaprom_cmd_iota_find_set_offset: (skip):
1151
 **/
1152
void
1153
fu_struct_synaprom_cmd_iota_find_set_offset(FuStructSynapromCmdIotaFind *st, guint32 value)
1154
0
{
1155
0
    g_return_if_fail(st != NULL);
1156
0
    fu_memwrite_uint32(st->data + 8, value, G_LITTLE_ENDIAN);
1157
0
}
1158
/**
1159
 * fu_struct_synaprom_cmd_iota_find_set_nbytes: (skip):
1160
 **/
1161
void
1162
fu_struct_synaprom_cmd_iota_find_set_nbytes(FuStructSynapromCmdIotaFind *st, guint32 value)
1163
0
{
1164
0
    g_return_if_fail(st != NULL);
1165
0
    fu_memwrite_uint32(st->data + 12, value, G_LITTLE_ENDIAN);
1166
0
}
1167
/**
1168
 * fu_struct_synaprom_cmd_iota_find_new: (skip):
1169
 **/
1170
FuStructSynapromCmdIotaFind *
1171
fu_struct_synaprom_cmd_iota_find_new(void)
1172
0
{
1173
0
    FuStructSynapromCmdIotaFind *st = g_byte_array_sized_new(16);
1174
0
    fu_byte_array_set_size(st, 16, 0x0);
1175
0
    return st;
1176
0
}