Coverage Report

Created: 2026-06-10 07:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/fu-bcm57xx-struct.c
Line
Count
Source
1
/*
2
 * This file is auto-generated, do not modify!
3
 *
4
 * SPDX-License-Identifier: LGPL-2.1-or-later
5
 */
6
7
#include "config.h"
8
9
#include <glib.h>
10
11
#include "fu-bcm57xx-struct.h"
12
#include "fu-byte-array.h"
13
#include "fu-bytes.h"
14
#include "fu-mem-private.h"
15
#include "fu-string.h"
16
17
#ifdef G_LOG_DOMAIN
18
  #undef G_LOG_DOMAIN
19
#endif
20
0
#define G_LOG_DOMAIN "FuStruct"
21
/**
22
 * fu_struct_bcm57xx_nvram_header_ref: (skip):
23
 **/
24
FuStructBcm57xxNvramHeader *
25
fu_struct_bcm57xx_nvram_header_ref(FuStructBcm57xxNvramHeader *st)
26
0
{
27
0
    g_return_val_if_fail(st != NULL, NULL);
28
0
    st->refcount++;
29
0
    return st;
30
0
}
31
/**
32
 * fu_struct_bcm57xx_nvram_header_unref: (skip):
33
 **/
34
void
35
fu_struct_bcm57xx_nvram_header_unref(FuStructBcm57xxNvramHeader *st)
36
631
{
37
631
    g_return_if_fail(st != NULL);
38
631
    if (st->refcount == 0) {
39
0
        g_critical("FuStructBcm57xxNvramHeader refcount already zero");
40
0
        return;
41
0
    }
42
631
    if (--st->refcount > 0)
43
0
        return;
44
631
    if (st->buf != NULL)
45
631
        g_byte_array_unref(st->buf);
46
631
    g_free(st);
47
631
}
48
/**
49
 * fu_struct_bcm57xx_nvram_header_new_internal: (skip):
50
 **/
51
static FuStructBcm57xxNvramHeader *
52
fu_struct_bcm57xx_nvram_header_new_internal(void)
53
631
{
54
631
    FuStructBcm57xxNvramHeader *st = g_new0(FuStructBcm57xxNvramHeader, 1);
55
631
    st->refcount = 1;
56
631
    return st;
57
631
}
58
59
/* getters */
60
/**
61
 * fu_struct_bcm57xx_nvram_header_get_magic: (skip):
62
 **/
63
guint32
64
fu_struct_bcm57xx_nvram_header_get_magic(const FuStructBcm57xxNvramHeader *st)
65
0
{
66
0
    g_return_val_if_fail(st != NULL, 0x0);
67
0
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
68
0
}
69
/**
70
 * fu_struct_bcm57xx_nvram_header_get_phys_addr: (skip):
71
 **/
72
guint32
73
fu_struct_bcm57xx_nvram_header_get_phys_addr(const FuStructBcm57xxNvramHeader *st)
74
0
{
75
0
    g_return_val_if_fail(st != NULL, 0x0);
76
0
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
77
0
}
78
/**
79
 * fu_struct_bcm57xx_nvram_header_get_size_wrds: (skip):
80
 **/
81
guint32
82
fu_struct_bcm57xx_nvram_header_get_size_wrds(const FuStructBcm57xxNvramHeader *st)
83
631
{
84
631
    g_return_val_if_fail(st != NULL, 0x0);
85
631
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
86
631
}
87
/**
88
 * fu_struct_bcm57xx_nvram_header_get_offset: (skip):
89
 **/
90
guint32
91
fu_struct_bcm57xx_nvram_header_get_offset(const FuStructBcm57xxNvramHeader *st)
92
631
{
93
631
    g_return_val_if_fail(st != NULL, 0x0);
94
631
    return fu_memread_uint32(st->buf->data + 12, G_BIG_ENDIAN);
95
631
}
96
/**
97
 * fu_struct_bcm57xx_nvram_header_get_crc: (skip):
98
 **/
99
guint32
100
fu_struct_bcm57xx_nvram_header_get_crc(const FuStructBcm57xxNvramHeader *st)
101
0
{
102
0
    g_return_val_if_fail(st != NULL, 0x0);
103
0
    return fu_memread_uint32(st->buf->data + 16, G_BIG_ENDIAN);
104
0
}
105
106
/* setters */
107
/**
108
 * fu_struct_bcm57xx_nvram_header_to_string: (skip):
109
 **/
110
static gchar *
111
fu_struct_bcm57xx_nvram_header_to_string(const FuStructBcm57xxNvramHeader *st)
112
0
{
113
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramHeader:\n");
114
0
    g_return_val_if_fail(st != NULL, NULL);
115
0
    g_string_append_printf(str, "  magic: 0x%x\n",
116
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_magic(st));
117
0
    g_string_append_printf(str, "  phys_addr: 0x%x\n",
118
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_phys_addr(st));
119
0
    g_string_append_printf(str, "  size_wrds: 0x%x\n",
120
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_size_wrds(st));
121
0
    g_string_append_printf(str, "  offset: 0x%x\n",
122
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_offset(st));
123
0
    g_string_append_printf(str, "  crc: 0x%x\n",
124
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_crc(st));
125
0
    if (str->len > 0)
126
0
        g_string_set_size(str, str->len - 1);
127
0
    return g_string_free(g_steal_pointer(&str), FALSE);
128
0
}
129
static gboolean
130
fu_struct_bcm57xx_nvram_header_validate_internal(FuStructBcm57xxNvramHeader *st, GError **error)
131
631
{
132
631
    g_return_val_if_fail(st != NULL, FALSE);
133
631
    return TRUE;
134
631
}
135
static gboolean
136
fu_struct_bcm57xx_nvram_header_parse_internal(FuStructBcm57xxNvramHeader *st, GError **error)
137
631
{
138
631
    if (g_log_get_debug_enabled()) {
139
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_header_to_string(st);
140
0
        g_debug("%s", str);
141
0
    }
142
631
    if (!fu_struct_bcm57xx_nvram_header_validate_internal(st, error))
143
0
        return FALSE;
144
631
    return TRUE;
145
631
}
146
/**
147
 * fu_struct_bcm57xx_nvram_header_parse_stream: (skip):
148
 **/
149
FuStructBcm57xxNvramHeader *
150
fu_struct_bcm57xx_nvram_header_parse_stream(GInputStream *stream, gsize offset, GError **error)
151
631
{
152
631
    g_autoptr(FuStructBcm57xxNvramHeader) st = fu_struct_bcm57xx_nvram_header_new_internal();
153
631
    st->buf = fu_input_stream_read_byte_array(stream, offset, 20, NULL, error);
154
631
    if (st->buf == NULL) {
155
0
        g_prefix_error(error, "FuStructBcm57xxNvramHeader failed read of 0x%x: ", (guint) 20);
156
0
        return NULL;
157
0
    }
158
631
    if (st->buf->len != 20) {
159
0
        g_set_error(error,
160
0
                    FWUPD_ERROR,
161
0
                    FWUPD_ERROR_INVALID_DATA,
162
0
                    "FuStructBcm57xxNvramHeader requested 0x%x and got 0x%x",
163
0
                    (guint) 20,
164
0
                    (guint) st->buf->len);
165
0
        return NULL;
166
0
    }
167
631
    if (!fu_struct_bcm57xx_nvram_header_parse_internal(st, error))
168
0
        return NULL;
169
631
    return g_steal_pointer(&st);
170
631
}
171
/**
172
 * fu_struct_bcm57xx_nvram_directory_ref: (skip):
173
 **/
174
FuStructBcm57xxNvramDirectory *
175
fu_struct_bcm57xx_nvram_directory_ref(FuStructBcm57xxNvramDirectory *st)
176
0
{
177
0
    g_return_val_if_fail(st != NULL, NULL);
178
0
    st->refcount++;
179
0
    return st;
180
0
}
181
/**
182
 * fu_struct_bcm57xx_nvram_directory_unref: (skip):
183
 **/
184
void
185
fu_struct_bcm57xx_nvram_directory_unref(FuStructBcm57xxNvramDirectory *st)
186
1.72k
{
187
1.72k
    g_return_if_fail(st != NULL);
188
1.72k
    if (st->refcount == 0) {
189
0
        g_critical("FuStructBcm57xxNvramDirectory refcount already zero");
190
0
        return;
191
0
    }
192
1.72k
    if (--st->refcount > 0)
193
0
        return;
194
1.72k
    if (st->buf != NULL)
195
1.72k
        g_byte_array_unref(st->buf);
196
1.72k
    g_free(st);
197
1.72k
}
198
/**
199
 * fu_struct_bcm57xx_nvram_directory_new_internal: (skip):
200
 **/
201
static FuStructBcm57xxNvramDirectory *
202
fu_struct_bcm57xx_nvram_directory_new_internal(void)
203
1.72k
{
204
1.72k
    FuStructBcm57xxNvramDirectory *st = g_new0(FuStructBcm57xxNvramDirectory, 1);
205
1.72k
    st->refcount = 1;
206
1.72k
    return st;
207
1.72k
}
208
209
/* getters */
210
/**
211
 * fu_struct_bcm57xx_nvram_directory_get_addr: (skip):
212
 **/
213
guint32
214
fu_struct_bcm57xx_nvram_directory_get_addr(const FuStructBcm57xxNvramDirectory *st)
215
1.72k
{
216
1.72k
    g_return_val_if_fail(st != NULL, 0x0);
217
1.72k
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
218
1.72k
}
219
/**
220
 * fu_struct_bcm57xx_nvram_directory_get_size_wrds: (skip):
221
 **/
222
guint32
223
fu_struct_bcm57xx_nvram_directory_get_size_wrds(const FuStructBcm57xxNvramDirectory *st)
224
1.72k
{
225
1.72k
    g_return_val_if_fail(st != NULL, 0x0);
226
1.72k
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
227
1.72k
}
228
/**
229
 * fu_struct_bcm57xx_nvram_directory_get_offset: (skip):
230
 **/
231
guint32
232
fu_struct_bcm57xx_nvram_directory_get_offset(const FuStructBcm57xxNvramDirectory *st)
233
1.72k
{
234
1.72k
    g_return_val_if_fail(st != NULL, 0x0);
235
1.72k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
236
1.72k
}
237
238
/* setters */
239
/**
240
 * fu_struct_bcm57xx_nvram_directory_to_string: (skip):
241
 **/
242
static gchar *
243
fu_struct_bcm57xx_nvram_directory_to_string(const FuStructBcm57xxNvramDirectory *st)
244
0
{
245
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramDirectory:\n");
246
0
    g_return_val_if_fail(st != NULL, NULL);
247
0
    g_string_append_printf(str, "  addr: 0x%x\n",
248
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_addr(st));
249
0
    g_string_append_printf(str, "  size_wrds: 0x%x\n",
250
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_size_wrds(st));
251
0
    g_string_append_printf(str, "  offset: 0x%x\n",
252
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_offset(st));
253
0
    if (str->len > 0)
254
0
        g_string_set_size(str, str->len - 1);
255
0
    return g_string_free(g_steal_pointer(&str), FALSE);
256
0
}
257
static gboolean
258
fu_struct_bcm57xx_nvram_directory_validate_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
259
1.72k
{
260
1.72k
    g_return_val_if_fail(st != NULL, FALSE);
261
1.72k
    return TRUE;
262
1.72k
}
263
static gboolean
264
fu_struct_bcm57xx_nvram_directory_parse_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
265
1.72k
{
266
1.72k
    if (g_log_get_debug_enabled()) {
267
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_directory_to_string(st);
268
0
        g_debug("%s", str);
269
0
    }
270
1.72k
    if (!fu_struct_bcm57xx_nvram_directory_validate_internal(st, error))
271
0
        return FALSE;
272
1.72k
    return TRUE;
273
1.72k
}
274
/**
275
 * fu_struct_bcm57xx_nvram_directory_parse_stream: (skip):
276
 **/
277
FuStructBcm57xxNvramDirectory *
278
fu_struct_bcm57xx_nvram_directory_parse_stream(GInputStream *stream, gsize offset, GError **error)
279
1.72k
{
280
1.72k
    g_autoptr(FuStructBcm57xxNvramDirectory) st = fu_struct_bcm57xx_nvram_directory_new_internal();
281
1.72k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 12, NULL, error);
282
1.72k
    if (st->buf == NULL) {
283
0
        g_prefix_error(error, "FuStructBcm57xxNvramDirectory failed read of 0x%x: ", (guint) 12);
284
0
        return NULL;
285
0
    }
286
1.72k
    if (st->buf->len != 12) {
287
0
        g_set_error(error,
288
0
                    FWUPD_ERROR,
289
0
                    FWUPD_ERROR_INVALID_DATA,
290
0
                    "FuStructBcm57xxNvramDirectory requested 0x%x and got 0x%x",
291
0
                    (guint) 12,
292
0
                    (guint) st->buf->len);
293
0
        return NULL;
294
0
    }
295
1.72k
    if (!fu_struct_bcm57xx_nvram_directory_parse_internal(st, error))
296
0
        return NULL;
297
1.72k
    return g_steal_pointer(&st);
298
1.72k
}
299
/**
300
 * fu_struct_bcm57xx_nvram_info_ref: (skip):
301
 **/
302
FuStructBcm57xxNvramInfo *
303
fu_struct_bcm57xx_nvram_info_ref(FuStructBcm57xxNvramInfo *st)
304
0
{
305
0
    g_return_val_if_fail(st != NULL, NULL);
306
0
    st->refcount++;
307
0
    return st;
308
0
}
309
/**
310
 * fu_struct_bcm57xx_nvram_info_unref: (skip):
311
 **/
312
void
313
fu_struct_bcm57xx_nvram_info_unref(FuStructBcm57xxNvramInfo *st)
314
684
{
315
684
    g_return_if_fail(st != NULL);
316
684
    if (st->refcount == 0) {
317
0
        g_critical("FuStructBcm57xxNvramInfo refcount already zero");
318
0
        return;
319
0
    }
320
684
    if (--st->refcount > 0)
321
0
        return;
322
684
    if (st->buf != NULL)
323
684
        g_byte_array_unref(st->buf);
324
684
    g_free(st);
325
684
}
326
/**
327
 * fu_struct_bcm57xx_nvram_info_new_internal: (skip):
328
 **/
329
static FuStructBcm57xxNvramInfo *
330
fu_struct_bcm57xx_nvram_info_new_internal(void)
331
684
{
332
684
    FuStructBcm57xxNvramInfo *st = g_new0(FuStructBcm57xxNvramInfo, 1);
333
684
    st->refcount = 1;
334
684
    return st;
335
684
}
336
337
/* getters */
338
/**
339
 * fu_struct_bcm57xx_nvram_info_get_mac_addr: (skip):
340
 **/
341
guint32
342
fu_struct_bcm57xx_nvram_info_get_mac_addr(const FuStructBcm57xxNvramInfo *st, guint idx)
343
684
{
344
684
    g_return_val_if_fail(st != NULL, 0x0);
345
684
    g_return_val_if_fail(idx < 11, 0x0);
346
684
    return fu_memread_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
347
684
                                        G_BIG_ENDIAN);
348
684
}
349
/**
350
 * fu_struct_bcm57xx_nvram_info_get_device: (skip):
351
 **/
352
guint16
353
fu_struct_bcm57xx_nvram_info_get_device(const FuStructBcm57xxNvramInfo *st)
354
684
{
355
684
    g_return_val_if_fail(st != NULL, 0x0);
356
684
    return fu_memread_uint16(st->buf->data + 44, G_BIG_ENDIAN);
357
684
}
358
/**
359
 * fu_struct_bcm57xx_nvram_info_get_vendor: (skip):
360
 **/
361
guint16
362
fu_struct_bcm57xx_nvram_info_get_vendor(const FuStructBcm57xxNvramInfo *st)
363
684
{
364
684
    g_return_val_if_fail(st != NULL, 0x0);
365
684
    return fu_memread_uint16(st->buf->data + 46, G_BIG_ENDIAN);
366
684
}
367
368
/* setters */
369
/**
370
 * fu_struct_bcm57xx_nvram_info_set_mac_addr: (skip):
371
 **/
372
void
373
fu_struct_bcm57xx_nvram_info_set_mac_addr(FuStructBcm57xxNvramInfo *st, guint idx, guint32 value)
374
0
{
375
0
    g_return_if_fail(st != NULL);
376
0
    g_return_if_fail(idx < 11);
377
0
    fu_memwrite_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
378
0
                                  value,
379
0
                                  G_BIG_ENDIAN);
380
0
}
381
/**
382
 * fu_struct_bcm57xx_nvram_info_set_device: (skip):
383
 **/
384
void
385
fu_struct_bcm57xx_nvram_info_set_device(FuStructBcm57xxNvramInfo *st, guint16 value)
386
0
{
387
0
    g_return_if_fail(st != NULL);
388
0
    fu_memwrite_uint16(st->buf->data + 44, value, G_BIG_ENDIAN);
389
0
}
390
/**
391
 * fu_struct_bcm57xx_nvram_info_set_vendor: (skip):
392
 **/
393
void
394
fu_struct_bcm57xx_nvram_info_set_vendor(FuStructBcm57xxNvramInfo *st, guint16 value)
395
0
{
396
0
    g_return_if_fail(st != NULL);
397
0
    fu_memwrite_uint16(st->buf->data + 46, value, G_BIG_ENDIAN);
398
0
}
399
/**
400
 * fu_struct_bcm57xx_nvram_info_new: (skip):
401
 **/
402
FuStructBcm57xxNvramInfo *
403
fu_struct_bcm57xx_nvram_info_new(void)
404
0
{
405
0
    FuStructBcm57xxNvramInfo *st = fu_struct_bcm57xx_nvram_info_new_internal();
406
0
    st->buf = g_byte_array_sized_new(140);
407
0
    fu_byte_array_set_size(st->buf, 140, 0x0);
408
0
    return st;
409
0
}
410
/**
411
 * fu_struct_bcm57xx_nvram_info_to_string: (skip):
412
 **/
413
static gchar *
414
fu_struct_bcm57xx_nvram_info_to_string(const FuStructBcm57xxNvramInfo *st)
415
0
{
416
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramInfo:\n");
417
0
    g_return_val_if_fail(st != NULL, NULL);
418
0
    for (guint i = 0; i < 11; i++) {
419
0
        g_string_append_printf(str, "  mac_addr[%u]: 0x%x\n",
420
0
                               i, (guint) fu_struct_bcm57xx_nvram_info_get_mac_addr(st, i));
421
0
    }
422
0
    g_string_append_printf(str, "  device: 0x%x\n",
423
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_device(st));
424
0
    g_string_append_printf(str, "  vendor: 0x%x\n",
425
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_vendor(st));
426
0
    if (str->len > 0)
427
0
        g_string_set_size(str, str->len - 1);
428
0
    return g_string_free(g_steal_pointer(&str), FALSE);
429
0
}
430
/**
431
 * fu_struct_bcm57xx_nvram_info_to_bytes: (skip):
432
 **/
433
GBytes *
434
fu_struct_bcm57xx_nvram_info_to_bytes(const FuStructBcm57xxNvramInfo *st)
435
0
{
436
0
    g_return_val_if_fail(st != NULL, NULL);
437
0
    return g_bytes_new(st->buf->data, st->buf->len);
438
0
}
439
static gboolean
440
fu_struct_bcm57xx_nvram_info_validate_internal(FuStructBcm57xxNvramInfo *st, GError **error)
441
684
{
442
684
    g_return_val_if_fail(st != NULL, FALSE);
443
684
    return TRUE;
444
684
}
445
static gboolean
446
fu_struct_bcm57xx_nvram_info_parse_internal(FuStructBcm57xxNvramInfo *st, GError **error)
447
684
{
448
684
    if (g_log_get_debug_enabled()) {
449
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_info_to_string(st);
450
0
        g_debug("%s", str);
451
0
    }
452
684
    if (!fu_struct_bcm57xx_nvram_info_validate_internal(st, error))
453
0
        return FALSE;
454
684
    return TRUE;
455
684
}
456
/**
457
 * fu_struct_bcm57xx_nvram_info_parse_stream: (skip):
458
 **/
459
FuStructBcm57xxNvramInfo *
460
fu_struct_bcm57xx_nvram_info_parse_stream(GInputStream *stream, gsize offset, GError **error)
461
684
{
462
684
    g_autoptr(FuStructBcm57xxNvramInfo) st = fu_struct_bcm57xx_nvram_info_new_internal();
463
684
    st->buf = fu_input_stream_read_byte_array(stream, offset, 140, NULL, error);
464
684
    if (st->buf == NULL) {
465
0
        g_prefix_error(error, "FuStructBcm57xxNvramInfo failed read of 0x%x: ", (guint) 140);
466
0
        return NULL;
467
0
    }
468
684
    if (st->buf->len != 140) {
469
0
        g_set_error(error,
470
0
                    FWUPD_ERROR,
471
0
                    FWUPD_ERROR_INVALID_DATA,
472
0
                    "FuStructBcm57xxNvramInfo requested 0x%x and got 0x%x",
473
0
                    (guint) 140,
474
0
                    (guint) st->buf->len);
475
0
        return NULL;
476
0
    }
477
684
    if (!fu_struct_bcm57xx_nvram_info_parse_internal(st, error))
478
0
        return NULL;
479
684
    return g_steal_pointer(&st);
480
684
}