Coverage Report

Created: 2025-11-24 06:59

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