Coverage Report

Created: 2025-11-11 06:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/fu-bcm57xx-struct.c
Line
Count
Source
1
/* auto-generated, do not modify */
2
#include "config.h"
3
4
#include <glib.h>
5
6
#include "fu-bcm57xx-struct.h"
7
#include "fu-byte-array.h"
8
#include "fu-mem-private.h"
9
#include "fu-string.h"
10
11
#ifdef G_LOG_DOMAIN
12
  #undef G_LOG_DOMAIN
13
#endif
14
0
#define G_LOG_DOMAIN "FuStruct"
15
/**
16
 * fu_struct_bcm57xx_nvram_header_ref: (skip):
17
 **/
18
FuStructBcm57xxNvramHeader *
19
fu_struct_bcm57xx_nvram_header_ref(FuStructBcm57xxNvramHeader *st)
20
0
{
21
0
    g_return_val_if_fail(st != NULL, NULL);
22
0
    st->refcount++;
23
0
    return st;
24
0
}
25
/**
26
 * fu_struct_bcm57xx_nvram_header_unref: (skip):
27
 **/
28
void
29
fu_struct_bcm57xx_nvram_header_unref(FuStructBcm57xxNvramHeader *st)
30
1.48k
{
31
1.48k
    g_return_if_fail(st != NULL);
32
1.48k
    if (st->refcount == 0) {
33
0
        g_critical("FuStructBcm57xxNvramHeader refcount already zero");
34
0
        return;
35
0
    }
36
1.48k
    if (--st->refcount > 0)
37
0
        return;
38
1.48k
    if (st->buf != NULL)
39
1.48k
        g_byte_array_unref(st->buf);
40
1.48k
    g_free(st);
41
1.48k
}
42
static FuStructBcm57xxNvramHeader *
43
fu_struct_bcm57xx_nvram_header_new_internal(void)
44
1.48k
{
45
1.48k
    FuStructBcm57xxNvramHeader *st = g_new0(FuStructBcm57xxNvramHeader, 1);
46
1.48k
    st->refcount = 1;
47
1.48k
    return st;
48
1.48k
}
49
50
/* getters */
51
/**
52
 * fu_struct_bcm57xx_nvram_header_get_magic: (skip):
53
 **/
54
guint32
55
fu_struct_bcm57xx_nvram_header_get_magic(const FuStructBcm57xxNvramHeader *st)
56
0
{
57
0
    g_return_val_if_fail(st != NULL, 0x0);
58
0
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
59
0
}
60
/**
61
 * fu_struct_bcm57xx_nvram_header_get_phys_addr: (skip):
62
 **/
63
guint32
64
fu_struct_bcm57xx_nvram_header_get_phys_addr(const FuStructBcm57xxNvramHeader *st)
65
0
{
66
0
    g_return_val_if_fail(st != NULL, 0x0);
67
0
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
68
0
}
69
/**
70
 * fu_struct_bcm57xx_nvram_header_get_size_wrds: (skip):
71
 **/
72
guint32
73
fu_struct_bcm57xx_nvram_header_get_size_wrds(const FuStructBcm57xxNvramHeader *st)
74
1.48k
{
75
1.48k
    g_return_val_if_fail(st != NULL, 0x0);
76
1.48k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
77
1.48k
}
78
/**
79
 * fu_struct_bcm57xx_nvram_header_get_offset: (skip):
80
 **/
81
guint32
82
fu_struct_bcm57xx_nvram_header_get_offset(const FuStructBcm57xxNvramHeader *st)
83
1.48k
{
84
1.48k
    g_return_val_if_fail(st != NULL, 0x0);
85
1.48k
    return fu_memread_uint32(st->buf->data + 12, G_BIG_ENDIAN);
86
1.48k
}
87
/**
88
 * fu_struct_bcm57xx_nvram_header_get_crc: (skip):
89
 **/
90
guint32
91
fu_struct_bcm57xx_nvram_header_get_crc(const FuStructBcm57xxNvramHeader *st)
92
0
{
93
0
    g_return_val_if_fail(st != NULL, 0x0);
94
0
    return fu_memread_uint32(st->buf->data + 16, G_BIG_ENDIAN);
95
0
}
96
97
/* setters */
98
/**
99
 * fu_struct_bcm57xx_nvram_header_to_string: (skip):
100
 **/
101
static gchar *
102
fu_struct_bcm57xx_nvram_header_to_string(const FuStructBcm57xxNvramHeader *st)
103
0
{
104
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramHeader:\n");
105
0
    g_return_val_if_fail(st != NULL, NULL);
106
0
    g_string_append_printf(str, "  magic: 0x%x\n",
107
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_magic(st));
108
0
    g_string_append_printf(str, "  phys_addr: 0x%x\n",
109
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_phys_addr(st));
110
0
    g_string_append_printf(str, "  size_wrds: 0x%x\n",
111
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_size_wrds(st));
112
0
    g_string_append_printf(str, "  offset: 0x%x\n",
113
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_offset(st));
114
0
    g_string_append_printf(str, "  crc: 0x%x\n",
115
0
                           (guint) fu_struct_bcm57xx_nvram_header_get_crc(st));
116
0
    if (str->len > 0)
117
0
        g_string_set_size(str, str->len - 1);
118
0
    return g_string_free(g_steal_pointer(&str), FALSE);
119
0
}
120
static gboolean
121
fu_struct_bcm57xx_nvram_header_validate_internal(FuStructBcm57xxNvramHeader *st, GError **error)
122
1.48k
{
123
1.48k
    g_return_val_if_fail(st != NULL, FALSE);
124
1.48k
    return TRUE;
125
1.48k
}
126
static gboolean
127
fu_struct_bcm57xx_nvram_header_parse_internal(FuStructBcm57xxNvramHeader *st, GError **error)
128
1.48k
{
129
1.48k
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
130
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_header_to_string(st);
131
0
        g_debug("%s", str);
132
0
    }
133
1.48k
    if (!fu_struct_bcm57xx_nvram_header_validate_internal(st, error))
134
0
        return FALSE;
135
1.48k
    return TRUE;
136
1.48k
}
137
/**
138
 * fu_struct_bcm57xx_nvram_header_parse_stream: (skip):
139
 **/
140
FuStructBcm57xxNvramHeader *
141
fu_struct_bcm57xx_nvram_header_parse_stream(GInputStream *stream, gsize offset, GError **error)
142
1.48k
{
143
1.48k
    g_autoptr(FuStructBcm57xxNvramHeader) st = fu_struct_bcm57xx_nvram_header_new_internal();
144
1.48k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 20, NULL, error);
145
1.48k
    if (st->buf == NULL) {
146
0
        g_prefix_error(error, "FuStructBcm57xxNvramHeader failed read of 0x%x: ", (guint) 20);
147
0
        return NULL;
148
0
    }
149
1.48k
    if (st->buf->len != 20) {
150
0
        g_set_error(error,
151
0
                    FWUPD_ERROR,
152
0
                    FWUPD_ERROR_INVALID_DATA,
153
0
                    "FuStructBcm57xxNvramHeader requested 0x%x and got 0x%x",
154
0
                    (guint) 20,
155
0
                    (guint) st->buf->len);
156
0
        return NULL;
157
0
    }
158
1.48k
    if (!fu_struct_bcm57xx_nvram_header_parse_internal(st, error))
159
0
        return NULL;
160
1.48k
    return g_steal_pointer(&st);
161
1.48k
}
162
/**
163
 * fu_struct_bcm57xx_nvram_directory_ref: (skip):
164
 **/
165
FuStructBcm57xxNvramDirectory *
166
fu_struct_bcm57xx_nvram_directory_ref(FuStructBcm57xxNvramDirectory *st)
167
0
{
168
0
    g_return_val_if_fail(st != NULL, NULL);
169
0
    st->refcount++;
170
0
    return st;
171
0
}
172
/**
173
 * fu_struct_bcm57xx_nvram_directory_unref: (skip):
174
 **/
175
void
176
fu_struct_bcm57xx_nvram_directory_unref(FuStructBcm57xxNvramDirectory *st)
177
2.94k
{
178
2.94k
    g_return_if_fail(st != NULL);
179
2.94k
    if (st->refcount == 0) {
180
0
        g_critical("FuStructBcm57xxNvramDirectory refcount already zero");
181
0
        return;
182
0
    }
183
2.94k
    if (--st->refcount > 0)
184
0
        return;
185
2.94k
    if (st->buf != NULL)
186
2.94k
        g_byte_array_unref(st->buf);
187
2.94k
    g_free(st);
188
2.94k
}
189
static FuStructBcm57xxNvramDirectory *
190
fu_struct_bcm57xx_nvram_directory_new_internal(void)
191
2.94k
{
192
2.94k
    FuStructBcm57xxNvramDirectory *st = g_new0(FuStructBcm57xxNvramDirectory, 1);
193
2.94k
    st->refcount = 1;
194
2.94k
    return st;
195
2.94k
}
196
197
/* getters */
198
/**
199
 * fu_struct_bcm57xx_nvram_directory_get_addr: (skip):
200
 **/
201
guint32
202
fu_struct_bcm57xx_nvram_directory_get_addr(const FuStructBcm57xxNvramDirectory *st)
203
2.94k
{
204
2.94k
    g_return_val_if_fail(st != NULL, 0x0);
205
2.94k
    return fu_memread_uint32(st->buf->data + 0, G_BIG_ENDIAN);
206
2.94k
}
207
/**
208
 * fu_struct_bcm57xx_nvram_directory_get_size_wrds: (skip):
209
 **/
210
guint32
211
fu_struct_bcm57xx_nvram_directory_get_size_wrds(const FuStructBcm57xxNvramDirectory *st)
212
2.94k
{
213
2.94k
    g_return_val_if_fail(st != NULL, 0x0);
214
2.94k
    return fu_memread_uint32(st->buf->data + 4, G_BIG_ENDIAN);
215
2.94k
}
216
/**
217
 * fu_struct_bcm57xx_nvram_directory_get_offset: (skip):
218
 **/
219
guint32
220
fu_struct_bcm57xx_nvram_directory_get_offset(const FuStructBcm57xxNvramDirectory *st)
221
2.94k
{
222
2.94k
    g_return_val_if_fail(st != NULL, 0x0);
223
2.94k
    return fu_memread_uint32(st->buf->data + 8, G_BIG_ENDIAN);
224
2.94k
}
225
226
/* setters */
227
/**
228
 * fu_struct_bcm57xx_nvram_directory_to_string: (skip):
229
 **/
230
static gchar *
231
fu_struct_bcm57xx_nvram_directory_to_string(const FuStructBcm57xxNvramDirectory *st)
232
0
{
233
0
    g_autoptr(GString) str = g_string_new("FuStructBcm57xxNvramDirectory:\n");
234
0
    g_return_val_if_fail(st != NULL, NULL);
235
0
    g_string_append_printf(str, "  addr: 0x%x\n",
236
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_addr(st));
237
0
    g_string_append_printf(str, "  size_wrds: 0x%x\n",
238
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_size_wrds(st));
239
0
    g_string_append_printf(str, "  offset: 0x%x\n",
240
0
                           (guint) fu_struct_bcm57xx_nvram_directory_get_offset(st));
241
0
    if (str->len > 0)
242
0
        g_string_set_size(str, str->len - 1);
243
0
    return g_string_free(g_steal_pointer(&str), FALSE);
244
0
}
245
static gboolean
246
fu_struct_bcm57xx_nvram_directory_validate_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
247
2.94k
{
248
2.94k
    g_return_val_if_fail(st != NULL, FALSE);
249
2.94k
    return TRUE;
250
2.94k
}
251
static gboolean
252
fu_struct_bcm57xx_nvram_directory_parse_internal(FuStructBcm57xxNvramDirectory *st, GError **error)
253
2.94k
{
254
2.94k
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
255
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_directory_to_string(st);
256
0
        g_debug("%s", str);
257
0
    }
258
2.94k
    if (!fu_struct_bcm57xx_nvram_directory_validate_internal(st, error))
259
0
        return FALSE;
260
2.94k
    return TRUE;
261
2.94k
}
262
/**
263
 * fu_struct_bcm57xx_nvram_directory_parse_stream: (skip):
264
 **/
265
FuStructBcm57xxNvramDirectory *
266
fu_struct_bcm57xx_nvram_directory_parse_stream(GInputStream *stream, gsize offset, GError **error)
267
2.94k
{
268
2.94k
    g_autoptr(FuStructBcm57xxNvramDirectory) st = fu_struct_bcm57xx_nvram_directory_new_internal();
269
2.94k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 12, NULL, error);
270
2.94k
    if (st->buf == NULL) {
271
0
        g_prefix_error(error, "FuStructBcm57xxNvramDirectory failed read of 0x%x: ", (guint) 12);
272
0
        return NULL;
273
0
    }
274
2.94k
    if (st->buf->len != 12) {
275
0
        g_set_error(error,
276
0
                    FWUPD_ERROR,
277
0
                    FWUPD_ERROR_INVALID_DATA,
278
0
                    "FuStructBcm57xxNvramDirectory requested 0x%x and got 0x%x",
279
0
                    (guint) 12,
280
0
                    (guint) st->buf->len);
281
0
        return NULL;
282
0
    }
283
2.94k
    if (!fu_struct_bcm57xx_nvram_directory_parse_internal(st, error))
284
0
        return NULL;
285
2.94k
    return g_steal_pointer(&st);
286
2.94k
}
287
/**
288
 * fu_struct_bcm57xx_nvram_info_ref: (skip):
289
 **/
290
FuStructBcm57xxNvramInfo *
291
fu_struct_bcm57xx_nvram_info_ref(FuStructBcm57xxNvramInfo *st)
292
0
{
293
0
    g_return_val_if_fail(st != NULL, NULL);
294
0
    st->refcount++;
295
0
    return st;
296
0
}
297
/**
298
 * fu_struct_bcm57xx_nvram_info_unref: (skip):
299
 **/
300
void
301
fu_struct_bcm57xx_nvram_info_unref(FuStructBcm57xxNvramInfo *st)
302
1.58k
{
303
1.58k
    g_return_if_fail(st != NULL);
304
1.58k
    if (st->refcount == 0) {
305
0
        g_critical("FuStructBcm57xxNvramInfo refcount already zero");
306
0
        return;
307
0
    }
308
1.58k
    if (--st->refcount > 0)
309
0
        return;
310
1.58k
    if (st->buf != NULL)
311
1.58k
        g_byte_array_unref(st->buf);
312
1.58k
    g_free(st);
313
1.58k
}
314
static FuStructBcm57xxNvramInfo *
315
fu_struct_bcm57xx_nvram_info_new_internal(void)
316
1.58k
{
317
1.58k
    FuStructBcm57xxNvramInfo *st = g_new0(FuStructBcm57xxNvramInfo, 1);
318
1.58k
    st->refcount = 1;
319
1.58k
    return st;
320
1.58k
}
321
322
/* getters */
323
/**
324
 * fu_struct_bcm57xx_nvram_info_get_mac_addr: (skip):
325
 **/
326
guint32
327
fu_struct_bcm57xx_nvram_info_get_mac_addr(const FuStructBcm57xxNvramInfo *st, guint idx)
328
1.58k
{
329
1.58k
    g_return_val_if_fail(st != NULL, 0x0);
330
1.58k
    return fu_memread_uint32(st->buf->data + 0 + (sizeof(guint32) * idx),
331
1.58k
                                        G_BIG_ENDIAN);
332
1.58k
}
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
1.58k
{
339
1.58k
    g_return_val_if_fail(st != NULL, 0x0);
340
1.58k
    return fu_memread_uint16(st->buf->data + 44, G_BIG_ENDIAN);
341
1.58k
}
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
1.58k
{
348
1.58k
    g_return_val_if_fail(st != NULL, 0x0);
349
1.58k
    return fu_memread_uint16(st->buf->data + 46, G_BIG_ENDIAN);
350
1.58k
}
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_validate_internal(FuStructBcm57xxNvramInfo *st, GError **error)
425
1.58k
{
426
1.58k
    g_return_val_if_fail(st != NULL, FALSE);
427
1.58k
    return TRUE;
428
1.58k
}
429
static gboolean
430
fu_struct_bcm57xx_nvram_info_parse_internal(FuStructBcm57xxNvramInfo *st, GError **error)
431
1.58k
{
432
1.58k
    if (g_getenv("FWUPD_VERBOSE") != NULL) {
433
0
        g_autofree gchar *str = fu_struct_bcm57xx_nvram_info_to_string(st);
434
0
        g_debug("%s", str);
435
0
    }
436
1.58k
    if (!fu_struct_bcm57xx_nvram_info_validate_internal(st, error))
437
0
        return FALSE;
438
1.58k
    return TRUE;
439
1.58k
}
440
/**
441
 * fu_struct_bcm57xx_nvram_info_parse_stream: (skip):
442
 **/
443
FuStructBcm57xxNvramInfo *
444
fu_struct_bcm57xx_nvram_info_parse_stream(GInputStream *stream, gsize offset, GError **error)
445
1.58k
{
446
1.58k
    g_autoptr(FuStructBcm57xxNvramInfo) st = fu_struct_bcm57xx_nvram_info_new_internal();
447
1.58k
    st->buf = fu_input_stream_read_byte_array(stream, offset, 140, NULL, error);
448
1.58k
    if (st->buf == NULL) {
449
0
        g_prefix_error(error, "FuStructBcm57xxNvramInfo failed read of 0x%x: ", (guint) 140);
450
0
        return NULL;
451
0
    }
452
1.58k
    if (st->buf->len != 140) {
453
0
        g_set_error(error,
454
0
                    FWUPD_ERROR,
455
0
                    FWUPD_ERROR_INVALID_DATA,
456
0
                    "FuStructBcm57xxNvramInfo requested 0x%x and got 0x%x",
457
0
                    (guint) 140,
458
0
                    (guint) st->buf->len);
459
0
        return NULL;
460
0
    }
461
1.58k
    if (!fu_struct_bcm57xx_nvram_info_parse_internal(st, error))
462
0
        return NULL;
463
1.58k
    return g_steal_pointer(&st);
464
1.58k
}