Coverage Report

Created: 2026-06-15 06:54

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
570
{
37
570
    g_return_if_fail(st != NULL);
38
570
    if (st->refcount == 0) {
39
0
        g_critical("FuStructBcm57xxNvramHeader refcount already zero");
40
0
        return;
41
0
    }
42
570
    if (--st->refcount > 0)
43
0
        return;
44
570
    if (st->buf != NULL)
45
570
        g_byte_array_unref(st->buf);
46
570
    g_free(st);
47
570
}
48
/**
49
 * fu_struct_bcm57xx_nvram_header_new_internal: (skip):
50
 **/
51
static FuStructBcm57xxNvramHeader *
52
fu_struct_bcm57xx_nvram_header_new_internal(void)
53
570
{
54
570
    FuStructBcm57xxNvramHeader *st = g_new0(FuStructBcm57xxNvramHeader, 1);
55
570
    st->refcount = 1;
56
570
    return st;
57
570
}
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
570
{
84
570
    g_return_val_if_fail(st != NULL, 0x0);
85
570
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
86
570
}
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
570
{
93
570
    g_return_val_if_fail(st != NULL, 0x0);
94
570
    return fu_memread_uint32(st->buf->data + 12, G_BIG_ENDIAN);
95
570
}
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_parse_internal(FuStructBcm57xxNvramHeader *st, GError **error)
131
570
{
132
570
    if (g_log_get_debug_enabled()) {
133
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_header_to_string(st);
134
0
        g_debug("%s", str);
135
0
    }
136
570
    return TRUE;
137
570
}
138
/**
139
 * fu_struct_bcm57xx_nvram_header_parse_stream: (skip):
140
 **/
141
FuStructBcm57xxNvramHeader *
142
fu_struct_bcm57xx_nvram_header_parse_stream(GInputStream *stream, gsize offset, GError **error)
143
570
{
144
570
    g_autoptr(FuStructBcm57xxNvramHeader) st = fu_struct_bcm57xx_nvram_header_new_internal();
145
570
    st->buf = fu_input_stream_read_byte_array(stream, offset, 20, NULL, error);
146
570
    if (st->buf == NULL) {
147
0
        g_prefix_error(error, "FuStructBcm57xxNvramHeader failed read of 0x%x: ", (guint) 20);
148
0
        return NULL;
149
0
    }
150
570
    if (st->buf->len != 20) {
151
0
        g_set_error(error,
152
0
                    FWUPD_ERROR,
153
0
                    FWUPD_ERROR_INVALID_DATA,
154
0
                    "FuStructBcm57xxNvramHeader requested 0x%x and got 0x%x",
155
0
                    (guint) 20,
156
0
                    (guint) st->buf->len);
157
0
        return NULL;
158
0
    }
159
570
    if (!fu_struct_bcm57xx_nvram_header_parse_internal(st, error))
160
0
        return NULL;
161
570
    return g_steal_pointer(&st);
162
570
}
163
/**
164
 * fu_struct_bcm57xx_nvram_directory_ref: (skip):
165
 **/
166
FuStructBcm57xxNvramDirectory *
167
fu_struct_bcm57xx_nvram_directory_ref(FuStructBcm57xxNvramDirectory *st)
168
0
{
169
0
    g_return_val_if_fail(st != NULL, NULL);
170
0
    st->refcount++;
171
0
    return st;
172
0
}
173
/**
174
 * fu_struct_bcm57xx_nvram_directory_unref: (skip):
175
 **/
176
void
177
fu_struct_bcm57xx_nvram_directory_unref(FuStructBcm57xxNvramDirectory *st)
178
1.59k
{
179
1.59k
    g_return_if_fail(st != NULL);
180
1.59k
    if (st->refcount == 0) {
181
0
        g_critical("FuStructBcm57xxNvramDirectory refcount already zero");
182
0
        return;
183
0
    }
184
1.59k
    if (--st->refcount > 0)
185
0
        return;
186
1.59k
    if (st->buf != NULL)
187
1.59k
        g_byte_array_unref(st->buf);
188
1.59k
    g_free(st);
189
1.59k
}
190
/**
191
 * fu_struct_bcm57xx_nvram_directory_new_internal: (skip):
192
 **/
193
static FuStructBcm57xxNvramDirectory *
194
fu_struct_bcm57xx_nvram_directory_new_internal(void)
195
1.59k
{
196
1.59k
    FuStructBcm57xxNvramDirectory *st = g_new0(FuStructBcm57xxNvramDirectory, 1);
197
1.59k
    st->refcount = 1;
198
1.59k
    return st;
199
1.59k
}
200
201
/* getters */
202
/**
203
 * fu_struct_bcm57xx_nvram_directory_get_addr: (skip):
204
 **/
205
guint32
206
fu_struct_bcm57xx_nvram_directory_get_addr(const FuStructBcm57xxNvramDirectory *st)
207
1.59k
{
208
1.59k
    g_return_val_if_fail(st != NULL, 0x0);
209
1.59k
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
210
1.59k
}
211
/**
212
 * fu_struct_bcm57xx_nvram_directory_get_size_wrds: (skip):
213
 **/
214
guint32
215
fu_struct_bcm57xx_nvram_directory_get_size_wrds(const FuStructBcm57xxNvramDirectory *st)
216
1.59k
{
217
1.59k
    g_return_val_if_fail(st != NULL, 0x0);
218
1.59k
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
219
1.59k
}
220
/**
221
 * fu_struct_bcm57xx_nvram_directory_get_offset: (skip):
222
 **/
223
guint32
224
fu_struct_bcm57xx_nvram_directory_get_offset(const FuStructBcm57xxNvramDirectory *st)
225
1.59k
{
226
1.59k
    g_return_val_if_fail(st != NULL, 0x0);
227
1.59k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
228
1.59k
}
229
230
/* setters */
231
/**
232
 * fu_struct_bcm57xx_nvram_directory_to_string: (skip):
233
 **/
234
static gchar *
235
fu_struct_bcm57xx_nvram_directory_to_string(const FuStructBcm57xxNvramDirectory *st)
236
0
{
237
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramDirectory:\n");
238
0
    g_return_val_if_fail(st != NULL, NULL);
239
0
    g_string_append_printf(str, "  addr: 0x%x\n",
240
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_addr(st));
241
0
    g_string_append_printf(str, "  size_wrds: 0x%x\n",
242
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_size_wrds(st));
243
0
    g_string_append_printf(str, "  offset: 0x%x\n",
244
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_offset(st));
245
0
    if (str->len > 0)
246
0
        g_string_set_size(str, str->len - 1);
247
0
    return g_string_free(g_steal_pointer(&str), FALSE);
248
0
}
249
static gboolean
250
fu_struct_bcm57xx_nvram_directory_parse_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
251
1.59k
{
252
1.59k
    if (g_log_get_debug_enabled()) {
253
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_directory_to_string(st);
254
0
        g_debug("%s", str);
255
0
    }
256
1.59k
    return TRUE;
257
1.59k
}
258
/**
259
 * fu_struct_bcm57xx_nvram_directory_parse_stream: (skip):
260
 **/
261
FuStructBcm57xxNvramDirectory *
262
fu_struct_bcm57xx_nvram_directory_parse_stream(GInputStream *stream, gsize offset, GError **error)
263
1.59k
{
264
1.59k
    g_autoptr(FuStructBcm57xxNvramDirectory) st = fu_struct_bcm57xx_nvram_directory_new_internal();
265
1.59k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 12, NULL, error);
266
1.59k
    if (st->buf == NULL) {
267
0
        g_prefix_error(error, "FuStructBcm57xxNvramDirectory failed read of 0x%x: ", (guint) 12);
268
0
        return NULL;
269
0
    }
270
1.59k
    if (st->buf->len != 12) {
271
0
        g_set_error(error,
272
0
                    FWUPD_ERROR,
273
0
                    FWUPD_ERROR_INVALID_DATA,
274
0
                    "FuStructBcm57xxNvramDirectory requested 0x%x and got 0x%x",
275
0
                    (guint) 12,
276
0
                    (guint) st->buf->len);
277
0
        return NULL;
278
0
    }
279
1.59k
    if (!fu_struct_bcm57xx_nvram_directory_parse_internal(st, error))
280
0
        return NULL;
281
1.59k
    return g_steal_pointer(&st);
282
1.59k
}
283
/**
284
 * fu_struct_bcm57xx_nvram_info_ref: (skip):
285
 **/
286
FuStructBcm57xxNvramInfo *
287
fu_struct_bcm57xx_nvram_info_ref(FuStructBcm57xxNvramInfo *st)
288
0
{
289
0
    g_return_val_if_fail(st != NULL, NULL);
290
0
    st->refcount++;
291
0
    return st;
292
0
}
293
/**
294
 * fu_struct_bcm57xx_nvram_info_unref: (skip):
295
 **/
296
void
297
fu_struct_bcm57xx_nvram_info_unref(FuStructBcm57xxNvramInfo *st)
298
619
{
299
619
    g_return_if_fail(st != NULL);
300
619
    if (st->refcount == 0) {
301
0
        g_critical("FuStructBcm57xxNvramInfo refcount already zero");
302
0
        return;
303
0
    }
304
619
    if (--st->refcount > 0)
305
0
        return;
306
619
    if (st->buf != NULL)
307
619
        g_byte_array_unref(st->buf);
308
619
    g_free(st);
309
619
}
310
/**
311
 * fu_struct_bcm57xx_nvram_info_new_internal: (skip):
312
 **/
313
static FuStructBcm57xxNvramInfo *
314
fu_struct_bcm57xx_nvram_info_new_internal(void)
315
619
{
316
619
    FuStructBcm57xxNvramInfo *st = g_new0(FuStructBcm57xxNvramInfo, 1);
317
619
    st->refcount = 1;
318
619
    return st;
319
619
}
320
321
/* getters */
322
/**
323
 * fu_struct_bcm57xx_nvram_info_get_mac_addr: (skip):
324
 **/
325
guint32
326
fu_struct_bcm57xx_nvram_info_get_mac_addr(const FuStructBcm57xxNvramInfo *st, guint idx)
327
619
{
328
619
    g_return_val_if_fail(st != NULL, 0x0);
329
619
    g_return_val_if_fail(idx < 11, 0x0);
330
619
    return fu_memread_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
331
619
                                        G_BIG_ENDIAN);
332
619
}
333
/**
334
 * fu_struct_bcm57xx_nvram_info_get_device: (skip):
335
 **/
336
guint16
337
fu_struct_bcm57xx_nvram_info_get_device(const FuStructBcm57xxNvramInfo *st)
338
619
{
339
619
    g_return_val_if_fail(st != NULL, 0x0);
340
619
    return fu_memread_uint16(st->buf->data + 44, G_BIG_ENDIAN);
341
619
}
342
/**
343
 * fu_struct_bcm57xx_nvram_info_get_vendor: (skip):
344
 **/
345
guint16
346
fu_struct_bcm57xx_nvram_info_get_vendor(const FuStructBcm57xxNvramInfo *st)
347
619
{
348
619
    g_return_val_if_fail(st != NULL, 0x0);
349
619
    return fu_memread_uint16(st->buf->data + 46, G_BIG_ENDIAN);
350
619
}
351
352
/* setters */
353
/**
354
 * fu_struct_bcm57xx_nvram_info_set_mac_addr: (skip):
355
 **/
356
void
357
fu_struct_bcm57xx_nvram_info_set_mac_addr(FuStructBcm57xxNvramInfo *st, guint idx, guint32 value)
358
0
{
359
0
    g_return_if_fail(st != NULL);
360
0
    g_return_if_fail(idx < 11);
361
0
    fu_memwrite_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
362
0
                                  value,
363
0
                                  G_BIG_ENDIAN);
364
0
}
365
/**
366
 * fu_struct_bcm57xx_nvram_info_set_device: (skip):
367
 **/
368
void
369
fu_struct_bcm57xx_nvram_info_set_device(FuStructBcm57xxNvramInfo *st, guint16 value)
370
0
{
371
0
    g_return_if_fail(st != NULL);
372
0
    fu_memwrite_uint16(st->buf->data + 44, value, G_BIG_ENDIAN);
373
0
}
374
/**
375
 * fu_struct_bcm57xx_nvram_info_set_vendor: (skip):
376
 **/
377
void
378
fu_struct_bcm57xx_nvram_info_set_vendor(FuStructBcm57xxNvramInfo *st, guint16 value)
379
0
{
380
0
    g_return_if_fail(st != NULL);
381
0
    fu_memwrite_uint16(st->buf->data + 46, value, G_BIG_ENDIAN);
382
0
}
383
/**
384
 * fu_struct_bcm57xx_nvram_info_new: (skip):
385
 **/
386
FuStructBcm57xxNvramInfo *
387
fu_struct_bcm57xx_nvram_info_new(void)
388
0
{
389
0
    FuStructBcm57xxNvramInfo *st = fu_struct_bcm57xx_nvram_info_new_internal();
390
0
    st->buf = g_byte_array_sized_new(140);
391
0
    fu_byte_array_set_size(st->buf, 140, 0x0);
392
0
    return st;
393
0
}
394
/**
395
 * fu_struct_bcm57xx_nvram_info_to_string: (skip):
396
 **/
397
static gchar *
398
fu_struct_bcm57xx_nvram_info_to_string(const FuStructBcm57xxNvramInfo *st)
399
0
{
400
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramInfo:\n");
401
0
    g_return_val_if_fail(st != NULL, NULL);
402
0
    for (guint i = 0; i < 11; i++) {
403
0
        g_string_append_printf(str, "  mac_addr[%u]: 0x%x\n",
404
0
                               i, (guint) fu_struct_bcm57xx_nvram_info_get_mac_addr(st, i));
405
0
    }
406
0
    g_string_append_printf(str, "  device: 0x%x\n",
407
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_device(st));
408
0
    g_string_append_printf(str, "  vendor: 0x%x\n",
409
0
                           (guint) fu_struct_bcm57xx_nvram_info_get_vendor(st));
410
0
    if (str->len > 0)
411
0
        g_string_set_size(str, str->len - 1);
412
0
    return g_string_free(g_steal_pointer(&str), FALSE);
413
0
}
414
/**
415
 * fu_struct_bcm57xx_nvram_info_to_bytes: (skip):
416
 **/
417
GBytes *
418
fu_struct_bcm57xx_nvram_info_to_bytes(const FuStructBcm57xxNvramInfo *st)
419
0
{
420
0
    g_return_val_if_fail(st != NULL, NULL);
421
0
    return g_bytes_new(st->buf->data, st->buf->len);
422
0
}
423
static gboolean
424
fu_struct_bcm57xx_nvram_info_parse_internal(FuStructBcm57xxNvramInfo *st, GError **error)
425
619
{
426
619
    if (g_log_get_debug_enabled()) {
427
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_info_to_string(st);
428
0
        g_debug("%s", str);
429
0
    }
430
619
    return TRUE;
431
619
}
432
/**
433
 * fu_struct_bcm57xx_nvram_info_parse_stream: (skip):
434
 **/
435
FuStructBcm57xxNvramInfo *
436
fu_struct_bcm57xx_nvram_info_parse_stream(GInputStream *stream, gsize offset, GError **error)
437
619
{
438
619
    g_autoptr(FuStructBcm57xxNvramInfo) st = fu_struct_bcm57xx_nvram_info_new_internal();
439
619
    st->buf = fu_input_stream_read_byte_array(stream, offset, 140, NULL, error);
440
619
    if (st->buf == NULL) {
441
0
        g_prefix_error(error, "FuStructBcm57xxNvramInfo failed read of 0x%x: ", (guint) 140);
442
0
        return NULL;
443
0
    }
444
619
    if (st->buf->len != 140) {
445
0
        g_set_error(error,
446
0
                    FWUPD_ERROR,
447
0
                    FWUPD_ERROR_INVALID_DATA,
448
0
                    "FuStructBcm57xxNvramInfo requested 0x%x and got 0x%x",
449
0
                    (guint) 140,
450
0
                    (guint) st->buf->len);
451
0
        return NULL;
452
0
    }
453
619
    if (!fu_struct_bcm57xx_nvram_info_parse_internal(st, error))
454
0
        return NULL;
455
619
    return g_steal_pointer(&st);
456
619
}