Coverage Report

Created: 2026-05-30 06:50

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
723
{
37
723
    g_return_if_fail(st != NULL);
38
723
    if (st->refcount == 0) {
39
0
        g_critical("FuStructBcm57xxNvramHeader refcount already zero");
40
0
        return;
41
0
    }
42
723
    if (--st->refcount > 0)
43
0
        return;
44
723
    if (st->buf != NULL)
45
723
        g_byte_array_unref(st->buf);
46
723
    g_free(st);
47
723
}
48
/**
49
 * fu_struct_bcm57xx_nvram_header_new_internal: (skip):
50
 **/
51
static FuStructBcm57xxNvramHeader *
52
fu_struct_bcm57xx_nvram_header_new_internal(void)
53
723
{
54
723
    FuStructBcm57xxNvramHeader *st = g_new0(FuStructBcm57xxNvramHeader, 1);
55
723
    st->refcount = 1;
56
723
    return st;
57
723
}
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
723
{
84
723
    g_return_val_if_fail(st != NULL, 0x0);
85
723
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
86
723
}
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
723
{
93
723
    g_return_val_if_fail(st != NULL, 0x0);
94
723
    return fu_memread_uint32(st->buf->data + 12, G_BIG_ENDIAN);
95
723
}
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
723
{
132
723
    g_return_val_if_fail(st != NULL, FALSE);
133
723
    return TRUE;
134
723
}
135
static gboolean
136
fu_struct_bcm57xx_nvram_header_parse_internal(FuStructBcm57xxNvramHeader *st, GError **error)
137
723
{
138
723
    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
723
    if (!fu_struct_bcm57xx_nvram_header_validate_internal(st, error))
143
0
        return FALSE;
144
723
    return TRUE;
145
723
}
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
723
{
152
723
    g_autoptr(FuStructBcm57xxNvramHeader) st = fu_struct_bcm57xx_nvram_header_new_internal();
153
723
    st->buf = fu_input_stream_read_byte_array(stream, offset, 20, NULL, error);
154
723
    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
723
    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
723
    if (!fu_struct_bcm57xx_nvram_header_parse_internal(st, error))
168
0
        return NULL;
169
723
    return g_steal_pointer(&st);
170
723
}
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
2.03k
{
187
2.03k
    g_return_if_fail(st != NULL);
188
2.03k
    if (st->refcount == 0) {
189
0
        g_critical("FuStructBcm57xxNvramDirectory refcount already zero");
190
0
        return;
191
0
    }
192
2.03k
    if (--st->refcount > 0)
193
0
        return;
194
2.03k
    if (st->buf != NULL)
195
2.03k
        g_byte_array_unref(st->buf);
196
2.03k
    g_free(st);
197
2.03k
}
198
/**
199
 * fu_struct_bcm57xx_nvram_directory_new_internal: (skip):
200
 **/
201
static FuStructBcm57xxNvramDirectory *
202
fu_struct_bcm57xx_nvram_directory_new_internal(void)
203
2.03k
{
204
2.03k
    FuStructBcm57xxNvramDirectory *st = g_new0(FuStructBcm57xxNvramDirectory, 1);
205
2.03k
    st->refcount = 1;
206
2.03k
    return st;
207
2.03k
}
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
2.03k
{
216
2.03k
    g_return_val_if_fail(st != NULL, 0x0);
217
2.03k
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
218
2.03k
}
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
2.03k
{
225
2.03k
    g_return_val_if_fail(st != NULL, 0x0);
226
2.03k
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
227
2.03k
}
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
2.03k
{
234
2.03k
    g_return_val_if_fail(st != NULL, 0x0);
235
2.03k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
236
2.03k
}
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
2.03k
{
260
2.03k
    g_return_val_if_fail(st != NULL, FALSE);
261
2.03k
    return TRUE;
262
2.03k
}
263
static gboolean
264
fu_struct_bcm57xx_nvram_directory_parse_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
265
2.03k
{
266
2.03k
    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
2.03k
    if (!fu_struct_bcm57xx_nvram_directory_validate_internal(st, error))
271
0
        return FALSE;
272
2.03k
    return TRUE;
273
2.03k
}
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
2.03k
{
280
2.03k
    g_autoptr(FuStructBcm57xxNvramDirectory) st = fu_struct_bcm57xx_nvram_directory_new_internal();
281
2.03k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 12, NULL, error);
282
2.03k
    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
2.03k
    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
2.03k
    if (!fu_struct_bcm57xx_nvram_directory_parse_internal(st, error))
296
0
        return NULL;
297
2.03k
    return g_steal_pointer(&st);
298
2.03k
}
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
784
{
315
784
    g_return_if_fail(st != NULL);
316
784
    if (st->refcount == 0) {
317
0
        g_critical("FuStructBcm57xxNvramInfo refcount already zero");
318
0
        return;
319
0
    }
320
784
    if (--st->refcount > 0)
321
0
        return;
322
784
    if (st->buf != NULL)
323
784
        g_byte_array_unref(st->buf);
324
784
    g_free(st);
325
784
}
326
/**
327
 * fu_struct_bcm57xx_nvram_info_new_internal: (skip):
328
 **/
329
static FuStructBcm57xxNvramInfo *
330
fu_struct_bcm57xx_nvram_info_new_internal(void)
331
784
{
332
784
    FuStructBcm57xxNvramInfo *st = g_new0(FuStructBcm57xxNvramInfo, 1);
333
784
    st->refcount = 1;
334
784
    return st;
335
784
}
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
784
{
344
784
    g_return_val_if_fail(st != NULL, 0x0);
345
784
    return fu_memread_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
346
784
                                        G_BIG_ENDIAN);
347
784
}
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
784
{
354
784
    g_return_val_if_fail(st != NULL, 0x0);
355
784
    return fu_memread_uint16(st->buf->data + 44, G_BIG_ENDIAN);
356
784
}
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
784
{
363
784
    g_return_val_if_fail(st != NULL, 0x0);
364
784
    return fu_memread_uint16(st->buf->data + 46, G_BIG_ENDIAN);
365
784
}
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
784
{
441
784
    g_return_val_if_fail(st != NULL, FALSE);
442
784
    return TRUE;
443
784
}
444
static gboolean
445
fu_struct_bcm57xx_nvram_info_parse_internal(FuStructBcm57xxNvramInfo *st, GError **error)
446
784
{
447
784
    if (g_log_get_debug_enabled()) {
448
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_info_to_string(st);
449
0
        g_debug("%s", str);
450
0
    }
451
784
    if (!fu_struct_bcm57xx_nvram_info_validate_internal(st, error))
452
0
        return FALSE;
453
784
    return TRUE;
454
784
}
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
784
{
461
784
    g_autoptr(FuStructBcm57xxNvramInfo) st = fu_struct_bcm57xx_nvram_info_new_internal();
462
784
    st->buf = fu_input_stream_read_byte_array(stream, offset, 140, NULL, error);
463
784
    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
784
    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
784
    if (!fu_struct_bcm57xx_nvram_info_parse_internal(st, error))
477
0
        return NULL;
478
784
    return g_steal_pointer(&st);
479
784
}