Coverage Report

Created: 2026-02-26 06:27

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
628
{
37
628
    g_return_if_fail(st != NULL);
38
628
    if (st->refcount == 0) {
39
0
        g_critical("FuStructBcm57xxNvramHeader refcount already zero");
40
0
        return;
41
0
    }
42
628
    if (--st->refcount > 0)
43
0
        return;
44
628
    if (st->buf != NULL)
45
628
        g_byte_array_unref(st->buf);
46
628
    g_free(st);
47
628
}
48
/**
49
 * fu_struct_bcm57xx_nvram_header_new_internal: (skip):
50
 **/
51
static FuStructBcm57xxNvramHeader *
52
fu_struct_bcm57xx_nvram_header_new_internal(void)
53
628
{
54
628
    FuStructBcm57xxNvramHeader *st = g_new0(FuStructBcm57xxNvramHeader, 1);
55
628
    st->refcount = 1;
56
628
    return st;
57
628
}
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
628
{
84
628
    g_return_val_if_fail(st != NULL, 0x0);
85
628
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
86
628
}
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
628
{
93
628
    g_return_val_if_fail(st != NULL, 0x0);
94
628
    return fu_memread_uint32(st->buf->data + 12, G_BIG_ENDIAN);
95
628
}
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
628
{
132
628
    g_return_val_if_fail(st != NULL, FALSE);
133
628
    return TRUE;
134
628
}
135
static gboolean
136
fu_struct_bcm57xx_nvram_header_parse_internal(FuStructBcm57xxNvramHeader *st, GError **error)
137
628
{
138
628
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
139
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_header_to_string(st);
140
0
        g_debug("%s", str);
141
0
    }
142
628
    if (!fu_struct_bcm57xx_nvram_header_validate_internal(st, error))
143
0
        return FALSE;
144
628
    return TRUE;
145
628
}
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
628
{
152
628
    g_autoptr(FuStructBcm57xxNvramHeader) st = fu_struct_bcm57xx_nvram_header_new_internal();
153
628
    st->buf = fu_input_stream_read_byte_array(stream, offset, 20, NULL, error);
154
628
    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
628
    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
628
    if (!fu_struct_bcm57xx_nvram_header_parse_internal(st, error))
168
0
        return NULL;
169
628
    return g_steal_pointer(&st);
170
628
}
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.80k
{
187
1.80k
    g_return_if_fail(st != NULL);
188
1.80k
    if (st->refcount == 0) {
189
0
        g_critical("FuStructBcm57xxNvramDirectory refcount already zero");
190
0
        return;
191
0
    }
192
1.80k
    if (--st->refcount > 0)
193
0
        return;
194
1.80k
    if (st->buf != NULL)
195
1.80k
        g_byte_array_unref(st->buf);
196
1.80k
    g_free(st);
197
1.80k
}
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.80k
{
204
1.80k
    FuStructBcm57xxNvramDirectory *st = g_new0(FuStructBcm57xxNvramDirectory, 1);
205
1.80k
    st->refcount = 1;
206
1.80k
    return st;
207
1.80k
}
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.80k
{
216
1.80k
    g_return_val_if_fail(st != NULL, 0x0);
217
1.80k
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
218
1.80k
}
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.80k
{
225
1.80k
    g_return_val_if_fail(st != NULL, 0x0);
226
1.80k
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
227
1.80k
}
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.80k
{
234
1.80k
    g_return_val_if_fail(st != NULL, 0x0);
235
1.80k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
236
1.80k
}
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.80k
{
260
1.80k
    g_return_val_if_fail(st != NULL, FALSE);
261
1.80k
    return TRUE;
262
1.80k
}
263
static gboolean
264
fu_struct_bcm57xx_nvram_directory_parse_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
265
1.80k
{
266
1.80k
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
267
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_directory_to_string(st);
268
0
        g_debug("%s", str);
269
0
    }
270
1.80k
    if (!fu_struct_bcm57xx_nvram_directory_validate_internal(st, error))
271
0
        return FALSE;
272
1.80k
    return TRUE;
273
1.80k
}
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.80k
{
280
1.80k
    g_autoptr(FuStructBcm57xxNvramDirectory) st = fu_struct_bcm57xx_nvram_directory_new_internal();
281
1.80k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 12, NULL, error);
282
1.80k
    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.80k
    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.80k
    if (!fu_struct_bcm57xx_nvram_directory_parse_internal(st, error))
296
0
        return NULL;
297
1.80k
    return g_steal_pointer(&st);
298
1.80k
}
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
686
{
315
686
    g_return_if_fail(st != NULL);
316
686
    if (st->refcount == 0) {
317
0
        g_critical("FuStructBcm57xxNvramInfo refcount already zero");
318
0
        return;
319
0
    }
320
686
    if (--st->refcount > 0)
321
0
        return;
322
686
    if (st->buf != NULL)
323
686
        g_byte_array_unref(st->buf);
324
686
    g_free(st);
325
686
}
326
/**
327
 * fu_struct_bcm57xx_nvram_info_new_internal: (skip):
328
 **/
329
static FuStructBcm57xxNvramInfo *
330
fu_struct_bcm57xx_nvram_info_new_internal(void)
331
686
{
332
686
    FuStructBcm57xxNvramInfo *st = g_new0(FuStructBcm57xxNvramInfo, 1);
333
686
    st->refcount = 1;
334
686
    return st;
335
686
}
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
686
{
344
686
    g_return_val_if_fail(st != NULL, 0x0);
345
686
    return fu_memread_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
346
686
                                        G_BIG_ENDIAN);
347
686
}
348
/**
349
 * fu_struct_bcm57xx_nvram_info_get_device: (skip):
350
 **/
351
guint16
352
fu_struct_bcm57xx_nvram_info_get_device(const FuStructBcm57xxNvramInfo *st)
353
686
{
354
686
    g_return_val_if_fail(st != NULL, 0x0);
355
686
    return fu_memread_uint16(st->buf->data + 44, G_BIG_ENDIAN);
356
686
}
357
/**
358
 * fu_struct_bcm57xx_nvram_info_get_vendor: (skip):
359
 **/
360
guint16
361
fu_struct_bcm57xx_nvram_info_get_vendor(const FuStructBcm57xxNvramInfo *st)
362
686
{
363
686
    g_return_val_if_fail(st != NULL, 0x0);
364
686
    return fu_memread_uint16(st->buf->data + 46, G_BIG_ENDIAN);
365
686
}
366
367
/* setters */
368
/**
369
 * fu_struct_bcm57xx_nvram_info_set_mac_addr: (skip):
370
 **/
371
void
372
fu_struct_bcm57xx_nvram_info_set_mac_addr(FuStructBcm57xxNvramInfo *st, guint idx, guint32 value)
373
0
{
374
0
    g_return_if_fail(st != NULL);
375
0
    g_return_if_fail(idx < 11);
376
0
    fu_memwrite_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
377
0
                                  value,
378
0
                                  G_BIG_ENDIAN);
379
0
}
380
/**
381
 * fu_struct_bcm57xx_nvram_info_set_device: (skip):
382
 **/
383
void
384
fu_struct_bcm57xx_nvram_info_set_device(FuStructBcm57xxNvramInfo *st, guint16 value)
385
0
{
386
0
    g_return_if_fail(st != NULL);
387
0
    fu_memwrite_uint16(st->buf->data + 44, value, G_BIG_ENDIAN);
388
0
}
389
/**
390
 * fu_struct_bcm57xx_nvram_info_set_vendor: (skip):
391
 **/
392
void
393
fu_struct_bcm57xx_nvram_info_set_vendor(FuStructBcm57xxNvramInfo *st, guint16 value)
394
0
{
395
0
    g_return_if_fail(st != NULL);
396
0
    fu_memwrite_uint16(st->buf->data + 46, value, G_BIG_ENDIAN);
397
0
}
398
/**
399
 * fu_struct_bcm57xx_nvram_info_new: (skip):
400
 **/
401
FuStructBcm57xxNvramInfo *
402
fu_struct_bcm57xx_nvram_info_new(void)
403
0
{
404
0
    FuStructBcm57xxNvramInfo *st = fu_struct_bcm57xx_nvram_info_new_internal();
405
0
    st->buf = g_byte_array_sized_new(140);
406
0
    fu_byte_array_set_size(st->buf, 140, 0x0);
407
0
    return st;
408
0
}
409
/**
410
 * fu_struct_bcm57xx_nvram_info_to_string: (skip):
411
 **/
412
static gchar *
413
fu_struct_bcm57xx_nvram_info_to_string(const FuStructBcm57xxNvramInfo *st)
414
0
{
415
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramInfo:\n");
416
0
    g_return_val_if_fail(st != NULL, NULL);
417
0
    for (guint i = 0; i < 11; i++) {
418
0
        g_string_append_printf(str, "  mac_addr[%u]: 0x%x\n",
419
0
                               i, (guint) fu_struct_bcm57xx_nvram_info_get_mac_addr(st, i));
420
0
    }
421
0
    g_string_append_printf(str, "  device: 0x%x\n",
422
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_device(st));
423
0
    g_string_append_printf(str, "  vendor: 0x%x\n",
424
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_vendor(st));
425
0
    if (str->len > 0)
426
0
        g_string_set_size(str, str->len - 1);
427
0
    return g_string_free(g_steal_pointer(&str), FALSE);
428
0
}
429
/**
430
 * fu_struct_bcm57xx_nvram_info_to_bytes: (skip):
431
 **/
432
GBytes *
433
fu_struct_bcm57xx_nvram_info_to_bytes(const FuStructBcm57xxNvramInfo *st)
434
0
{
435
0
    g_return_val_if_fail(st != NULL, NULL);
436
0
    return g_bytes_new(st->buf->data, st->buf->len);
437
0
}
438
static gboolean
439
fu_struct_bcm57xx_nvram_info_validate_internal(FuStructBcm57xxNvramInfo *st, GError **error)
440
686
{
441
686
    g_return_val_if_fail(st != NULL, FALSE);
442
686
    return TRUE;
443
686
}
444
static gboolean
445
fu_struct_bcm57xx_nvram_info_parse_internal(FuStructBcm57xxNvramInfo *st, GError **error)
446
686
{
447
686
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
448
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_info_to_string(st);
449
0
        g_debug("%s", str);
450
0
    }
451
686
    if (!fu_struct_bcm57xx_nvram_info_validate_internal(st, error))
452
0
        return FALSE;
453
686
    return TRUE;
454
686
}
455
/**
456
 * fu_struct_bcm57xx_nvram_info_parse_stream: (skip):
457
 **/
458
FuStructBcm57xxNvramInfo *
459
fu_struct_bcm57xx_nvram_info_parse_stream(GInputStream *stream, gsize offset, GError **error)
460
686
{
461
686
    g_autoptr(FuStructBcm57xxNvramInfo) st = fu_struct_bcm57xx_nvram_info_new_internal();
462
686
    st->buf = fu_input_stream_read_byte_array(stream, offset, 140, NULL, error);
463
686
    if (st->buf == NULL) {
464
0
        g_prefix_error(error, "FuStructBcm57xxNvramInfo failed read of 0x%x: ", (guint) 140);
465
0
        return NULL;
466
0
    }
467
686
    if (st->buf->len != 140) {
468
0
        g_set_error(error,
469
0
                    FWUPD_ERROR,
470
0
                    FWUPD_ERROR_INVALID_DATA,
471
0
                    "FuStructBcm57xxNvramInfo requested 0x%x and got 0x%x",
472
0
                    (guint) 140,
473
0
                    (guint) st->buf->len);
474
0
        return NULL;
475
0
    }
476
686
    if (!fu_struct_bcm57xx_nvram_info_parse_internal(st, error))
477
0
        return NULL;
478
686
    return g_steal_pointer(&st);
479
686
}