Coverage Report

Created: 2026-01-10 07:09

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