Coverage Report

Created: 2026-10-17 07:48

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/fu-amd-afc-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-amd-afc-struct.h"
12
#include "fu-byte-array.h"
13
#include "fu-bytes.h"
14
#include "fu-mem.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
/**
23
 * fu_amd_afc_hii_package_kind_to_string:
24
 * @val: value, e.g. %FU_AMD_AFC_HII_PACKAGE_KIND_STRINGS
25
 *
26
 * Converts an enumerated value to a string.
27
 *
28
 * Returns: identifier string
29
 **/
30
static const gchar *
31
fu_amd_afc_hii_package_kind_to_string(FuAmdAfcHiiPackageKind val)
32
0
{
33
0
    if (val == FU_AMD_AFC_HII_PACKAGE_KIND_FORMS)
34
0
        return "forms";
35
0
    if (val == FU_AMD_AFC_HII_PACKAGE_KIND_STRINGS)
36
0
        return "strings";
37
0
    return NULL;
38
0
}
39
40
41
42
/**
43
 * fu_amd_afc_setting_kind_to_string:
44
 * @val: value, e.g. %FU_AMD_AFC_SETTING_KIND_INTEGER
45
 *
46
 * Converts an enumerated value to a string.
47
 *
48
 * Returns: identifier string
49
 **/
50
const gchar *
51
fu_amd_afc_setting_kind_to_string(FuAmdAfcSettingKind val)
52
0
{
53
0
    if (val == FU_AMD_AFC_SETTING_KIND_ENUMERATION)
54
0
        return "enumeration";
55
0
    if (val == FU_AMD_AFC_SETTING_KIND_INTEGER)
56
0
        return "integer";
57
0
    return NULL;
58
0
}
59
60
/**
61
 * fu_amd_afc_question_flags_to_string:
62
 * @val: value, e.g. %FU_AMD_AFC_QUESTION_FLAG_READONLY
63
 *
64
 * Converts an enumerated value to a string.
65
 *
66
 * Returns: identifier string
67
 **/
68
static const gchar *
69
fu_amd_afc_question_flags_to_string(FuAmdAfcQuestionFlags val)
70
0
{
71
0
    if (val == FU_AMD_AFC_QUESTION_FLAG_NONE)
72
0
        return "none";
73
0
    if (val == FU_AMD_AFC_QUESTION_FLAG_READONLY)
74
0
        return "readonly";
75
0
    return NULL;
76
0
}
77
/**
78
 * fu_struct_amd_afc_eie_header_ref: (skip):
79
 **/
80
FuStructAmdAfcEieHeader *
81
fu_struct_amd_afc_eie_header_ref(FuStructAmdAfcEieHeader *st)
82
0
{
83
0
    g_return_val_if_fail(st != NULL, NULL);
84
0
    st->refcount++;
85
0
    return st;
86
0
}
87
/**
88
 * fu_struct_amd_afc_eie_header_unref: (skip):
89
 **/
90
void
91
fu_struct_amd_afc_eie_header_unref(FuStructAmdAfcEieHeader *st)
92
25.4k
{
93
25.4k
    g_return_if_fail(st != NULL);
94
25.4k
    if (st->refcount == 0) {
95
0
        g_critical("FuStructAmdAfcEieHeader refcount already zero");
96
0
        return;
97
0
    }
98
25.4k
    if (--st->refcount > 0)
99
0
        return;
100
25.4k
    if (st->buf != NULL)
101
25.4k
        g_byte_array_unref(st->buf);
102
25.4k
    g_free(st);
103
25.4k
}
104
/**
105
 * fu_struct_amd_afc_eie_header_new_internal: (skip):
106
 **/
107
static FuStructAmdAfcEieHeader *
108
fu_struct_amd_afc_eie_header_new_internal(void)
109
25.4k
{
110
25.4k
    FuStructAmdAfcEieHeader *st = g_new0(FuStructAmdAfcEieHeader, 1);
111
25.4k
    st->refcount = 1;
112
25.4k
    return st;
113
25.4k
}
114
115
/* getters */
116
/**
117
 * fu_struct_amd_afc_eie_header_get_signature: (skip):
118
 **/
119
static guint32
120
fu_struct_amd_afc_eie_header_get_signature(const FuStructAmdAfcEieHeader *st)
121
25.3k
{
122
25.3k
    g_return_val_if_fail(st != NULL, 0x0);
123
25.3k
    return fu_memread_uint32(st->buf->data + 0, G_LITTLE_ENDIAN);
124
25.3k
}
125
/**
126
 * fu_struct_amd_afc_eie_header_get_length: (skip):
127
 **/
128
guint32
129
fu_struct_amd_afc_eie_header_get_length(const FuStructAmdAfcEieHeader *st)
130
23.7k
{
131
23.7k
    g_return_val_if_fail(st != NULL, 0x0);
132
23.7k
    return fu_memread_uint32(st->buf->data + 4, G_LITTLE_ENDIAN);
133
23.7k
}
134
/**
135
 * fu_struct_amd_afc_eie_header_get_revision: (skip):
136
 **/
137
guint16
138
fu_struct_amd_afc_eie_header_get_revision(const FuStructAmdAfcEieHeader *st)
139
12.6k
{
140
12.6k
    g_return_val_if_fail(st != NULL, 0x0);
141
12.6k
    return fu_memread_uint16(st->buf->data + 8, G_LITTLE_ENDIAN);
142
12.6k
}
143
/**
144
 * fu_struct_amd_afc_eie_header_get_reserved0: (skip):
145
 **/
146
guint8
147
fu_struct_amd_afc_eie_header_get_reserved0(const FuStructAmdAfcEieHeader *st)
148
0
{
149
0
    g_return_val_if_fail(st != NULL, 0x0);
150
0
    return st->buf->data[10];
151
0
}
152
/**
153
 * fu_struct_amd_afc_eie_header_get_checksum: (skip):
154
 **/
155
guint8
156
fu_struct_amd_afc_eie_header_get_checksum(const FuStructAmdAfcEieHeader *st)
157
0
{
158
0
    g_return_val_if_fail(st != NULL, 0x0);
159
0
    return st->buf->data[11];
160
0
}
161
/**
162
 * fu_struct_amd_afc_eie_header_get_reserved1: (skip):
163
 **/
164
const guint8 *
165
fu_struct_amd_afc_eie_header_get_reserved1(const FuStructAmdAfcEieHeader *st, gsize *bufsz)
166
0
{
167
0
    g_return_val_if_fail(st != NULL, NULL);
168
0
    if (bufsz != NULL)
169
0
        *bufsz = 4;
170
0
    return st->buf->data + 12;
171
0
}
172
/**
173
 * fu_struct_amd_afc_eie_header_get_forms_offset: (skip):
174
 **/
175
guint32
176
fu_struct_amd_afc_eie_header_get_forms_offset(const FuStructAmdAfcEieHeader *st)
177
12.6k
{
178
12.6k
    g_return_val_if_fail(st != NULL, 0x0);
179
12.6k
    return fu_memread_uint32(st->buf->data + 16, G_LITTLE_ENDIAN);
180
12.6k
}
181
/**
182
 * fu_struct_amd_afc_eie_header_get_forms_size: (skip):
183
 **/
184
guint32
185
fu_struct_amd_afc_eie_header_get_forms_size(const FuStructAmdAfcEieHeader *st)
186
0
{
187
0
    g_return_val_if_fail(st != NULL, 0x0);
188
0
    return fu_memread_uint32(st->buf->data + 20, G_LITTLE_ENDIAN);
189
0
}
190
/**
191
 * fu_struct_amd_afc_eie_header_get_strings_offset: (skip):
192
 **/
193
guint32
194
fu_struct_amd_afc_eie_header_get_strings_offset(const FuStructAmdAfcEieHeader *st)
195
12.6k
{
196
12.6k
    g_return_val_if_fail(st != NULL, 0x0);
197
12.6k
    return fu_memread_uint32(st->buf->data + 24, G_LITTLE_ENDIAN);
198
12.6k
}
199
/**
200
 * fu_struct_amd_afc_eie_header_get_strings_size: (skip):
201
 **/
202
guint32
203
fu_struct_amd_afc_eie_header_get_strings_size(const FuStructAmdAfcEieHeader *st)
204
0
{
205
0
    g_return_val_if_fail(st != NULL, 0x0);
206
0
    return fu_memread_uint32(st->buf->data + 28, G_LITTLE_ENDIAN);
207
0
}
208
/**
209
 * fu_struct_amd_afc_eie_header_get_varstores_offset: (skip):
210
 **/
211
guint32
212
fu_struct_amd_afc_eie_header_get_varstores_offset(const FuStructAmdAfcEieHeader *st)
213
12.6k
{
214
12.6k
    g_return_val_if_fail(st != NULL, 0x0);
215
12.6k
    return fu_memread_uint32(st->buf->data + 32, G_LITTLE_ENDIAN);
216
12.6k
}
217
/**
218
 * fu_struct_amd_afc_eie_header_get_varstores_size: (skip):
219
 **/
220
guint32
221
fu_struct_amd_afc_eie_header_get_varstores_size(const FuStructAmdAfcEieHeader *st)
222
12.6k
{
223
12.6k
    g_return_val_if_fail(st != NULL, 0x0);
224
12.6k
    return fu_memread_uint32(st->buf->data + 36, G_LITTLE_ENDIAN);
225
12.6k
}
226
/**
227
 * fu_struct_amd_afc_eie_header_get_reserved2: (skip):
228
 **/
229
const guint8 *
230
fu_struct_amd_afc_eie_header_get_reserved2(const FuStructAmdAfcEieHeader *st, gsize *bufsz)
231
0
{
232
0
    g_return_val_if_fail(st != NULL, NULL);
233
0
    if (bufsz != NULL)
234
0
        *bufsz = 10;
235
0
    return st->buf->data + 40;
236
0
}
237
238
/* setters */
239
/**
240
 * fu_struct_amd_afc_eie_header_set_signature: (skip):
241
 **/
242
static void
243
fu_struct_amd_afc_eie_header_set_signature(FuStructAmdAfcEieHeader *st, guint32 value)
244
123
{
245
123
    g_return_if_fail(st != NULL);
246
123
    fu_memwrite_uint32(st->buf->data + 0, value, G_LITTLE_ENDIAN);
247
123
}
248
/**
249
 * fu_struct_amd_afc_eie_header_set_length: (skip):
250
 **/
251
void
252
fu_struct_amd_afc_eie_header_set_length(FuStructAmdAfcEieHeader *st, guint32 value)
253
123
{
254
123
    g_return_if_fail(st != NULL);
255
123
    fu_memwrite_uint32(st->buf->data + 4, value, G_LITTLE_ENDIAN);
256
123
}
257
/**
258
 * fu_struct_amd_afc_eie_header_set_revision: (skip):
259
 **/
260
void
261
fu_struct_amd_afc_eie_header_set_revision(FuStructAmdAfcEieHeader *st, guint16 value)
262
123
{
263
123
    g_return_if_fail(st != NULL);
264
123
    fu_memwrite_uint16(st->buf->data + 8, value, G_LITTLE_ENDIAN);
265
123
}
266
/**
267
 * fu_struct_amd_afc_eie_header_set_reserved0: (skip):
268
 **/
269
void
270
fu_struct_amd_afc_eie_header_set_reserved0(FuStructAmdAfcEieHeader *st, guint8 value)
271
0
{
272
0
    g_return_if_fail(st != NULL);
273
0
    st->buf->data[10] = value;
274
0
}
275
/**
276
 * fu_struct_amd_afc_eie_header_set_checksum: (skip):
277
 **/
278
void
279
fu_struct_amd_afc_eie_header_set_checksum(FuStructAmdAfcEieHeader *st, guint8 value)
280
123
{
281
123
    g_return_if_fail(st != NULL);
282
123
    st->buf->data[11] = value;
283
123
}
284
/**
285
 * fu_struct_amd_afc_eie_header_set_reserved1: (skip):
286
 **/
287
gboolean
288
fu_struct_amd_afc_eie_header_set_reserved1(FuStructAmdAfcEieHeader *st, const guint8 *buf, gsize bufsz, GError **error)
289
0
{
290
0
    g_return_val_if_fail(st != NULL, FALSE);
291
0
    g_return_val_if_fail(buf != NULL, FALSE);
292
0
    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
293
0
    return fu_memcpy_safe(st->buf->data, st->buf->len, 12, buf, bufsz, 0x0, bufsz, error);
294
0
}
295
/**
296
 * fu_struct_amd_afc_eie_header_set_forms_offset: (skip):
297
 **/
298
void
299
fu_struct_amd_afc_eie_header_set_forms_offset(FuStructAmdAfcEieHeader *st, guint32 value)
300
123
{
301
123
    g_return_if_fail(st != NULL);
302
123
    fu_memwrite_uint32(st->buf->data + 16, value, G_LITTLE_ENDIAN);
303
123
}
304
/**
305
 * fu_struct_amd_afc_eie_header_set_forms_size: (skip):
306
 **/
307
void
308
fu_struct_amd_afc_eie_header_set_forms_size(FuStructAmdAfcEieHeader *st, guint32 value)
309
123
{
310
123
    g_return_if_fail(st != NULL);
311
123
    fu_memwrite_uint32(st->buf->data + 20, value, G_LITTLE_ENDIAN);
312
123
}
313
/**
314
 * fu_struct_amd_afc_eie_header_set_strings_offset: (skip):
315
 **/
316
void
317
fu_struct_amd_afc_eie_header_set_strings_offset(FuStructAmdAfcEieHeader *st, guint32 value)
318
123
{
319
123
    g_return_if_fail(st != NULL);
320
123
    fu_memwrite_uint32(st->buf->data + 24, value, G_LITTLE_ENDIAN);
321
123
}
322
/**
323
 * fu_struct_amd_afc_eie_header_set_strings_size: (skip):
324
 **/
325
void
326
fu_struct_amd_afc_eie_header_set_strings_size(FuStructAmdAfcEieHeader *st, guint32 value)
327
123
{
328
123
    g_return_if_fail(st != NULL);
329
123
    fu_memwrite_uint32(st->buf->data + 28, value, G_LITTLE_ENDIAN);
330
123
}
331
/**
332
 * fu_struct_amd_afc_eie_header_set_varstores_offset: (skip):
333
 **/
334
void
335
fu_struct_amd_afc_eie_header_set_varstores_offset(FuStructAmdAfcEieHeader *st, guint32 value)
336
123
{
337
123
    g_return_if_fail(st != NULL);
338
123
    fu_memwrite_uint32(st->buf->data + 32, value, G_LITTLE_ENDIAN);
339
123
}
340
/**
341
 * fu_struct_amd_afc_eie_header_set_varstores_size: (skip):
342
 **/
343
void
344
fu_struct_amd_afc_eie_header_set_varstores_size(FuStructAmdAfcEieHeader *st, guint32 value)
345
123
{
346
123
    g_return_if_fail(st != NULL);
347
123
    fu_memwrite_uint32(st->buf->data + 36, value, G_LITTLE_ENDIAN);
348
123
}
349
/**
350
 * fu_struct_amd_afc_eie_header_set_reserved2: (skip):
351
 **/
352
gboolean
353
fu_struct_amd_afc_eie_header_set_reserved2(FuStructAmdAfcEieHeader *st, const guint8 *buf, gsize bufsz, GError **error)
354
0
{
355
0
    g_return_val_if_fail(st != NULL, FALSE);
356
0
    g_return_val_if_fail(buf != NULL, FALSE);
357
0
    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
358
0
    return fu_memcpy_safe(st->buf->data, st->buf->len, 40, buf, bufsz, 0x0, bufsz, error);
359
0
}
360
/**
361
 * fu_struct_amd_afc_eie_header_new: (skip):
362
 **/
363
FuStructAmdAfcEieHeader *
364
fu_struct_amd_afc_eie_header_new(void)
365
123
{
366
123
    FuStructAmdAfcEieHeader *st = fu_struct_amd_afc_eie_header_new_internal();
367
123
    st->buf = g_byte_array_sized_new(50);
368
123
    fu_byte_array_set_size(st->buf, 50, 0x0);
369
123
    fu_struct_amd_afc_eie_header_set_signature(st, 0x48434641);
370
123
    return st;
371
123
}
372
/**
373
 * fu_struct_amd_afc_eie_header_to_string: (skip):
374
 **/
375
static gchar *
376
fu_struct_amd_afc_eie_header_to_string(const FuStructAmdAfcEieHeader *st)
377
0
{
378
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcEieHeader:\n");
379
0
    g_return_val_if_fail(st != NULL, NULL);
380
0
    g_string_append_printf(str, "  signature: 0x%x\n",
381
0
                           (guint) fu_struct_amd_afc_eie_header_get_signature(st));
382
0
    g_string_append_printf(str, "  length: 0x%x\n",
383
0
                           (guint) fu_struct_amd_afc_eie_header_get_length(st));
384
0
    g_string_append_printf(str, "  revision: 0x%x\n",
385
0
                           (guint) fu_struct_amd_afc_eie_header_get_revision(st));
386
0
    g_string_append_printf(str, "  reserved0: 0x%x\n",
387
0
                           (guint) fu_struct_amd_afc_eie_header_get_reserved0(st));
388
0
    g_string_append_printf(str, "  checksum: 0x%x\n",
389
0
                           (guint) fu_struct_amd_afc_eie_header_get_checksum(st));
390
0
    {
391
0
        gsize bufsz = 0;
392
0
        const guint8 *buf = fu_struct_amd_afc_eie_header_get_reserved1(st, &bufsz);
393
0
        g_autoptr(GString) tmp = g_string_new(NULL);
394
0
        for (gsize i = 0; i < bufsz; i++)
395
0
            g_string_append_printf(tmp, "%02X", buf[i]);
396
0
        g_string_append_printf(str, "  reserved1: 0x%s\n", tmp->str);
397
0
    }
398
0
    g_string_append_printf(str, "  forms_offset: 0x%x\n",
399
0
                           (guint) fu_struct_amd_afc_eie_header_get_forms_offset(st));
400
0
    g_string_append_printf(str, "  forms_size: 0x%x\n",
401
0
                           (guint) fu_struct_amd_afc_eie_header_get_forms_size(st));
402
0
    g_string_append_printf(str, "  strings_offset: 0x%x\n",
403
0
                           (guint) fu_struct_amd_afc_eie_header_get_strings_offset(st));
404
0
    g_string_append_printf(str, "  strings_size: 0x%x\n",
405
0
                           (guint) fu_struct_amd_afc_eie_header_get_strings_size(st));
406
0
    g_string_append_printf(str, "  varstores_offset: 0x%x\n",
407
0
                           (guint) fu_struct_amd_afc_eie_header_get_varstores_offset(st));
408
0
    g_string_append_printf(str, "  varstores_size: 0x%x\n",
409
0
                           (guint) fu_struct_amd_afc_eie_header_get_varstores_size(st));
410
0
    {
411
0
        gsize bufsz = 0;
412
0
        const guint8 *buf = fu_struct_amd_afc_eie_header_get_reserved2(st, &bufsz);
413
0
        g_autoptr(GString) tmp = g_string_new(NULL);
414
0
        for (gsize i = 0; i < bufsz; i++)
415
0
            g_string_append_printf(tmp, "%02X", buf[i]);
416
0
        g_string_append_printf(str, "  reserved2: 0x%s\n", tmp->str);
417
0
    }
418
0
    if (str->len > 0)
419
0
        g_string_set_size(str, str->len - 1);
420
0
    return g_string_free(g_steal_pointer(&str), FALSE);
421
0
}
422
static gboolean
423
fu_struct_amd_afc_eie_header_validate_internal(FuStructAmdAfcEieHeader *st, GError **error)
424
25.3k
{
425
25.3k
    g_return_val_if_fail(st != NULL, FALSE);
426
25.3k
    if (fu_struct_amd_afc_eie_header_get_signature(st) != 0x48434641) {
427
0
        g_set_error(error,
428
0
                    FWUPD_ERROR,
429
0
                    FWUPD_ERROR_INVALID_DATA,
430
0
                    "constant FuStructAmdAfcEieHeader.signature was not valid, "
431
0
                    "expected 0x%x and got 0x%x",
432
0
                    (guint) 0x48434641,
433
0
                    (guint) fu_struct_amd_afc_eie_header_get_signature(st));
434
0
        return FALSE;
435
0
    }
436
25.3k
    return TRUE;
437
25.3k
}
438
static gboolean
439
fu_struct_amd_afc_eie_header_parse_internal(FuStructAmdAfcEieHeader *st, GError **error)
440
25.3k
{
441
25.3k
    if (g_log_get_debug_enabled()) {
442
0
        g_autofree gchar *str = fu_struct_amd_afc_eie_header_to_string(st);
443
0
        g_debug("%s", str);
444
0
    }
445
25.3k
    if (!fu_struct_amd_afc_eie_header_validate_internal(st, error))
446
0
        return FALSE;
447
25.3k
    return TRUE;
448
25.3k
}
449
450
/**
451
 * fu_struct_amd_afc_eie_header_parse: (skip):
452
 **/
453
static FuStructAmdAfcEieHeader *
454
fu_struct_amd_afc_eie_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
455
25.3k
{
456
25.3k
    g_autoptr(FuStructAmdAfcEieHeader) st = fu_struct_amd_afc_eie_header_new_internal();
457
25.3k
    g_return_val_if_fail(buf != NULL, NULL);
458
25.3k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
459
25.3k
    if (!fu_memchk_read(bufsz, offset, 50, error)) {
460
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcEieHeader: ");
461
0
        return NULL;
462
0
    }
463
25.3k
    st->buf = g_byte_array_new();
464
25.3k
    g_byte_array_append(st->buf, buf + offset, 50);
465
25.3k
    if (!fu_struct_amd_afc_eie_header_parse_internal(st, error))
466
0
        return NULL;
467
25.3k
    return g_steal_pointer(&st);
468
25.3k
}
469
/**
470
 * fu_struct_amd_afc_eie_header_parse_bytes: (skip):
471
 **/
472
FuStructAmdAfcEieHeader *
473
fu_struct_amd_afc_eie_header_parse_bytes(GBytes *blob, gsize offset, GError **error)
474
25.3k
{
475
25.3k
    gsize bufsz = 0;
476
25.3k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
477
25.3k
    if (buf == NULL)
478
0
        return NULL;
479
25.3k
    return fu_struct_amd_afc_eie_header_parse(buf, bufsz, offset, error);
480
25.3k
}
481
/**
482
 * fu_struct_amd_afc_config_header_ref: (skip):
483
 **/
484
FuStructAmdAfcConfigHeader *
485
fu_struct_amd_afc_config_header_ref(FuStructAmdAfcConfigHeader *st)
486
0
{
487
0
    g_return_val_if_fail(st != NULL, NULL);
488
0
    st->refcount++;
489
0
    return st;
490
0
}
491
/**
492
 * fu_struct_amd_afc_config_header_unref: (skip):
493
 **/
494
void
495
fu_struct_amd_afc_config_header_unref(FuStructAmdAfcConfigHeader *st)
496
0
{
497
0
    g_return_if_fail(st != NULL);
498
0
    if (st->refcount == 0) {
499
0
        g_critical("FuStructAmdAfcConfigHeader refcount already zero");
500
0
        return;
501
0
    }
502
0
    if (--st->refcount > 0)
503
0
        return;
504
0
    if (st->buf != NULL)
505
0
        g_byte_array_unref(st->buf);
506
0
    g_free(st);
507
0
}
508
/**
509
 * fu_struct_amd_afc_config_header_new_internal: (skip):
510
 **/
511
static FuStructAmdAfcConfigHeader *
512
fu_struct_amd_afc_config_header_new_internal(void)
513
0
{
514
0
    FuStructAmdAfcConfigHeader *st = g_new0(FuStructAmdAfcConfigHeader, 1);
515
0
    st->refcount = 1;
516
0
    return st;
517
0
}
518
519
/* getters */
520
/**
521
 * fu_struct_amd_afc_config_header_get_signature: (skip):
522
 **/
523
static guint32
524
fu_struct_amd_afc_config_header_get_signature(const FuStructAmdAfcConfigHeader *st)
525
0
{
526
0
    g_return_val_if_fail(st != NULL, 0x0);
527
0
    return fu_memread_uint32(st->buf->data + 0, G_LITTLE_ENDIAN);
528
0
}
529
/**
530
 * fu_struct_amd_afc_config_header_get_length: (skip):
531
 **/
532
guint32
533
fu_struct_amd_afc_config_header_get_length(const FuStructAmdAfcConfigHeader *st)
534
0
{
535
0
    g_return_val_if_fail(st != NULL, 0x0);
536
0
    return fu_memread_uint32(st->buf->data + 4, G_LITTLE_ENDIAN);
537
0
}
538
/**
539
 * fu_struct_amd_afc_config_header_get_revision: (skip):
540
 **/
541
guint16
542
fu_struct_amd_afc_config_header_get_revision(const FuStructAmdAfcConfigHeader *st)
543
0
{
544
0
    g_return_val_if_fail(st != NULL, 0x0);
545
0
    return fu_memread_uint16(st->buf->data + 8, G_LITTLE_ENDIAN);
546
0
}
547
/**
548
 * fu_struct_amd_afc_config_header_get_checksum: (skip):
549
 **/
550
guint8
551
fu_struct_amd_afc_config_header_get_checksum(const FuStructAmdAfcConfigHeader *st)
552
0
{
553
0
    g_return_val_if_fail(st != NULL, 0x0);
554
0
    return st->buf->data[11];
555
0
}
556
/**
557
 * fu_struct_amd_afc_config_header_get_strings_size: (skip):
558
 **/
559
guint32
560
fu_struct_amd_afc_config_header_get_strings_size(const FuStructAmdAfcConfigHeader *st)
561
0
{
562
0
    g_return_val_if_fail(st != NULL, 0x0);
563
0
    return fu_memread_uint32(st->buf->data + 12, G_LITTLE_ENDIAN);
564
0
}
565
/**
566
 * fu_struct_amd_afc_config_header_get_entry_count: (skip):
567
 **/
568
guint16
569
fu_struct_amd_afc_config_header_get_entry_count(const FuStructAmdAfcConfigHeader *st)
570
0
{
571
0
    g_return_val_if_fail(st != NULL, 0x0);
572
0
    return fu_memread_uint16(st->buf->data + 16, G_LITTLE_ENDIAN);
573
0
}
574
575
/* setters */
576
/**
577
 * fu_struct_amd_afc_config_header_set_signature: (skip):
578
 **/
579
static void
580
fu_struct_amd_afc_config_header_set_signature(FuStructAmdAfcConfigHeader *st, guint32 value)
581
0
{
582
0
    g_return_if_fail(st != NULL);
583
0
    fu_memwrite_uint32(st->buf->data + 0, value, G_LITTLE_ENDIAN);
584
0
}
585
/**
586
 * fu_struct_amd_afc_config_header_set_length: (skip):
587
 **/
588
void
589
fu_struct_amd_afc_config_header_set_length(FuStructAmdAfcConfigHeader *st, guint32 value)
590
0
{
591
0
    g_return_if_fail(st != NULL);
592
0
    fu_memwrite_uint32(st->buf->data + 4, value, G_LITTLE_ENDIAN);
593
0
}
594
/**
595
 * fu_struct_amd_afc_config_header_set_revision: (skip):
596
 **/
597
void
598
fu_struct_amd_afc_config_header_set_revision(FuStructAmdAfcConfigHeader *st, guint16 value)
599
0
{
600
0
    g_return_if_fail(st != NULL);
601
0
    fu_memwrite_uint16(st->buf->data + 8, value, G_LITTLE_ENDIAN);
602
0
}
603
/**
604
 * fu_struct_amd_afc_config_header_set_checksum: (skip):
605
 **/
606
void
607
fu_struct_amd_afc_config_header_set_checksum(FuStructAmdAfcConfigHeader *st, guint8 value)
608
0
{
609
0
    g_return_if_fail(st != NULL);
610
0
    st->buf->data[11] = value;
611
0
}
612
/**
613
 * fu_struct_amd_afc_config_header_set_strings_size: (skip):
614
 **/
615
void
616
fu_struct_amd_afc_config_header_set_strings_size(FuStructAmdAfcConfigHeader *st, guint32 value)
617
0
{
618
0
    g_return_if_fail(st != NULL);
619
0
    fu_memwrite_uint32(st->buf->data + 12, value, G_LITTLE_ENDIAN);
620
0
}
621
/**
622
 * fu_struct_amd_afc_config_header_set_entry_count: (skip):
623
 **/
624
void
625
fu_struct_amd_afc_config_header_set_entry_count(FuStructAmdAfcConfigHeader *st, guint16 value)
626
0
{
627
0
    g_return_if_fail(st != NULL);
628
0
    fu_memwrite_uint16(st->buf->data + 16, value, G_LITTLE_ENDIAN);
629
0
}
630
/**
631
 * fu_struct_amd_afc_config_header_new: (skip):
632
 **/
633
FuStructAmdAfcConfigHeader *
634
fu_struct_amd_afc_config_header_new(void)
635
0
{
636
0
    FuStructAmdAfcConfigHeader *st = fu_struct_amd_afc_config_header_new_internal();
637
0
    st->buf = g_byte_array_sized_new(18);
638
0
    fu_byte_array_set_size(st->buf, 18, 0x0);
639
0
    fu_struct_amd_afc_config_header_set_signature(st, 0x48434641);
640
0
    fu_struct_amd_afc_config_header_set_revision(st, 0x0100);
641
0
    return st;
642
0
}
643
/**
644
 * fu_struct_amd_afc_config_header_to_string: (skip):
645
 **/
646
static gchar *
647
fu_struct_amd_afc_config_header_to_string(const FuStructAmdAfcConfigHeader *st)
648
0
{
649
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcConfigHeader:\n");
650
0
    g_return_val_if_fail(st != NULL, NULL);
651
0
    g_string_append_printf(str, "  signature: 0x%x\n",
652
0
                           (guint) fu_struct_amd_afc_config_header_get_signature(st));
653
0
    g_string_append_printf(str, "  length: 0x%x\n",
654
0
                           (guint) fu_struct_amd_afc_config_header_get_length(st));
655
0
    g_string_append_printf(str, "  revision: 0x%x\n",
656
0
                           (guint) fu_struct_amd_afc_config_header_get_revision(st));
657
0
    g_string_append_printf(str, "  checksum: 0x%x\n",
658
0
                           (guint) fu_struct_amd_afc_config_header_get_checksum(st));
659
0
    g_string_append_printf(str, "  strings_size: 0x%x\n",
660
0
                           (guint) fu_struct_amd_afc_config_header_get_strings_size(st));
661
0
    g_string_append_printf(str, "  entry_count: 0x%x\n",
662
0
                           (guint) fu_struct_amd_afc_config_header_get_entry_count(st));
663
0
    if (str->len > 0)
664
0
        g_string_set_size(str, str->len - 1);
665
0
    return g_string_free(g_steal_pointer(&str), FALSE);
666
0
}
667
static gboolean
668
fu_struct_amd_afc_config_header_validate_internal(FuStructAmdAfcConfigHeader *st, GError **error)
669
0
{
670
0
    g_return_val_if_fail(st != NULL, FALSE);
671
0
    if (fu_struct_amd_afc_config_header_get_signature(st) != 0x48434641) {
672
0
        g_set_error(error,
673
0
                    FWUPD_ERROR,
674
0
                    FWUPD_ERROR_INVALID_DATA,
675
0
                    "constant FuStructAmdAfcConfigHeader.signature was not valid, "
676
0
                    "expected 0x%x and got 0x%x",
677
0
                    (guint) 0x48434641,
678
0
                    (guint) fu_struct_amd_afc_config_header_get_signature(st));
679
0
        return FALSE;
680
0
    }
681
0
    return TRUE;
682
0
}
683
static gboolean
684
fu_struct_amd_afc_config_header_parse_internal(FuStructAmdAfcConfigHeader *st, GError **error)
685
0
{
686
0
    if (g_log_get_debug_enabled()) {
687
0
        g_autofree gchar *str = fu_struct_amd_afc_config_header_to_string(st);
688
0
        g_debug("%s", str);
689
0
    }
690
0
    if (!fu_struct_amd_afc_config_header_validate_internal(st, error))
691
0
        return FALSE;
692
0
    return TRUE;
693
0
}
694
695
/**
696
 * fu_struct_amd_afc_config_header_parse: (skip):
697
 **/
698
FuStructAmdAfcConfigHeader *
699
fu_struct_amd_afc_config_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
700
0
{
701
0
    g_autoptr(FuStructAmdAfcConfigHeader) st = fu_struct_amd_afc_config_header_new_internal();
702
0
    g_return_val_if_fail(buf != NULL, NULL);
703
0
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
704
0
    if (!fu_memchk_read(bufsz, offset, 18, error)) {
705
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcConfigHeader: ");
706
0
        return NULL;
707
0
    }
708
0
    st->buf = g_byte_array_new();
709
0
    g_byte_array_append(st->buf, buf + offset, 18);
710
0
    if (!fu_struct_amd_afc_config_header_parse_internal(st, error))
711
0
        return NULL;
712
0
    return g_steal_pointer(&st);
713
0
}
714
/**
715
 * fu_struct_amd_afc_config_id_ref: (skip):
716
 **/
717
FuStructAmdAfcConfigId *
718
fu_struct_amd_afc_config_id_ref(FuStructAmdAfcConfigId *st)
719
0
{
720
0
    g_return_val_if_fail(st != NULL, NULL);
721
0
    st->refcount++;
722
0
    return st;
723
0
}
724
/**
725
 * fu_struct_amd_afc_config_id_unref: (skip):
726
 **/
727
void
728
fu_struct_amd_afc_config_id_unref(FuStructAmdAfcConfigId *st)
729
0
{
730
0
    g_return_if_fail(st != NULL);
731
0
    if (st->refcount == 0) {
732
0
        g_critical("FuStructAmdAfcConfigId refcount already zero");
733
0
        return;
734
0
    }
735
0
    if (--st->refcount > 0)
736
0
        return;
737
0
    if (st->buf != NULL)
738
0
        g_byte_array_unref(st->buf);
739
0
    g_free(st);
740
0
}
741
/**
742
 * fu_struct_amd_afc_config_id_new_internal: (skip):
743
 **/
744
static FuStructAmdAfcConfigId *
745
fu_struct_amd_afc_config_id_new_internal(void)
746
0
{
747
0
    FuStructAmdAfcConfigId *st = g_new0(FuStructAmdAfcConfigId, 1);
748
0
    st->refcount = 1;
749
0
    return st;
750
0
}
751
752
/* getters */
753
754
/* setters */
755
/**
756
 * fu_struct_amd_afc_config_id_set_value: (skip):
757
 **/
758
void
759
fu_struct_amd_afc_config_id_set_value(FuStructAmdAfcConfigId *st, guint16 value)
760
0
{
761
0
    g_return_if_fail(st != NULL);
762
0
    fu_memwrite_uint16(st->buf->data + 0, value, G_LITTLE_ENDIAN);
763
0
}
764
/**
765
 * fu_struct_amd_afc_config_id_new: (skip):
766
 **/
767
FuStructAmdAfcConfigId *
768
fu_struct_amd_afc_config_id_new(void)
769
0
{
770
0
    FuStructAmdAfcConfigId *st = fu_struct_amd_afc_config_id_new_internal();
771
0
    st->buf = g_byte_array_sized_new(2);
772
0
    fu_byte_array_set_size(st->buf, 2, 0x0);
773
0
    return st;
774
0
}
775
/**
776
 * fu_struct_amd_afc_varstore_header_ref: (skip):
777
 **/
778
FuStructAmdAfcVarstoreHeader *
779
fu_struct_amd_afc_varstore_header_ref(FuStructAmdAfcVarstoreHeader *st)
780
0
{
781
0
    g_return_val_if_fail(st != NULL, NULL);
782
0
    st->refcount++;
783
0
    return st;
784
0
}
785
/**
786
 * fu_struct_amd_afc_varstore_header_unref: (skip):
787
 **/
788
void
789
fu_struct_amd_afc_varstore_header_unref(FuStructAmdAfcVarstoreHeader *st)
790
11.8k
{
791
11.8k
    g_return_if_fail(st != NULL);
792
11.8k
    if (st->refcount == 0) {
793
0
        g_critical("FuStructAmdAfcVarstoreHeader refcount already zero");
794
0
        return;
795
0
    }
796
11.8k
    if (--st->refcount > 0)
797
0
        return;
798
11.8k
    if (st->buf != NULL)
799
11.8k
        g_byte_array_unref(st->buf);
800
11.8k
    g_free(st);
801
11.8k
}
802
/**
803
 * fu_struct_amd_afc_varstore_header_new_internal: (skip):
804
 **/
805
static FuStructAmdAfcVarstoreHeader *
806
fu_struct_amd_afc_varstore_header_new_internal(void)
807
11.8k
{
808
11.8k
    FuStructAmdAfcVarstoreHeader *st = g_new0(FuStructAmdAfcVarstoreHeader, 1);
809
11.8k
    st->refcount = 1;
810
11.8k
    return st;
811
11.8k
}
812
813
/* getters */
814
/**
815
 * fu_struct_amd_afc_varstore_header_get_length: (skip):
816
 **/
817
guint32
818
fu_struct_amd_afc_varstore_header_get_length(const FuStructAmdAfcVarstoreHeader *st)
819
11.7k
{
820
11.7k
    g_return_val_if_fail(st != NULL, 0x0);
821
11.7k
    return fu_memread_uint32(st->buf->data + 0, G_LITTLE_ENDIAN);
822
11.7k
}
823
/**
824
 * fu_struct_amd_afc_varstore_header_get_name_size: (skip):
825
 **/
826
guint8
827
fu_struct_amd_afc_varstore_header_get_name_size(const FuStructAmdAfcVarstoreHeader *st)
828
11.6k
{
829
11.6k
    g_return_val_if_fail(st != NULL, 0x0);
830
11.6k
    return st->buf->data[4];
831
11.6k
}
832
/**
833
 * fu_struct_amd_afc_varstore_header_get_id: (skip):
834
 **/
835
guint16
836
fu_struct_amd_afc_varstore_header_get_id(const FuStructAmdAfcVarstoreHeader *st)
837
11.6k
{
838
11.6k
    g_return_val_if_fail(st != NULL, 0x0);
839
11.6k
    return fu_memread_uint16(st->buf->data + 21, G_LITTLE_ENDIAN);
840
11.6k
}
841
/**
842
 * fu_struct_amd_afc_varstore_header_get_data_size: (skip):
843
 **/
844
guint32
845
fu_struct_amd_afc_varstore_header_get_data_size(const FuStructAmdAfcVarstoreHeader *st)
846
11.6k
{
847
11.6k
    g_return_val_if_fail(st != NULL, 0x0);
848
11.6k
    return fu_memread_uint32(st->buf->data + 23, G_LITTLE_ENDIAN);
849
11.6k
}
850
851
/* setters */
852
/**
853
 * fu_struct_amd_afc_varstore_header_set_length: (skip):
854
 **/
855
void
856
fu_struct_amd_afc_varstore_header_set_length(FuStructAmdAfcVarstoreHeader *st, guint32 value)
857
123
{
858
123
    g_return_if_fail(st != NULL);
859
123
    fu_memwrite_uint32(st->buf->data + 0, value, G_LITTLE_ENDIAN);
860
123
}
861
/**
862
 * fu_struct_amd_afc_varstore_header_set_name_size: (skip):
863
 **/
864
void
865
fu_struct_amd_afc_varstore_header_set_name_size(FuStructAmdAfcVarstoreHeader *st, guint8 value)
866
0
{
867
0
    g_return_if_fail(st != NULL);
868
0
    st->buf->data[4] = value;
869
0
}
870
/**
871
 * fu_struct_amd_afc_varstore_header_set_id: (skip):
872
 **/
873
void
874
fu_struct_amd_afc_varstore_header_set_id(FuStructAmdAfcVarstoreHeader *st, guint16 value)
875
123
{
876
123
    g_return_if_fail(st != NULL);
877
123
    fu_memwrite_uint16(st->buf->data + 21, value, G_LITTLE_ENDIAN);
878
123
}
879
/**
880
 * fu_struct_amd_afc_varstore_header_set_data_size: (skip):
881
 **/
882
void
883
fu_struct_amd_afc_varstore_header_set_data_size(FuStructAmdAfcVarstoreHeader *st, guint32 value)
884
123
{
885
123
    g_return_if_fail(st != NULL);
886
123
    fu_memwrite_uint32(st->buf->data + 23, value, G_LITTLE_ENDIAN);
887
123
}
888
/**
889
 * fu_struct_amd_afc_varstore_header_new: (skip):
890
 **/
891
FuStructAmdAfcVarstoreHeader *
892
fu_struct_amd_afc_varstore_header_new(void)
893
123
{
894
123
    FuStructAmdAfcVarstoreHeader *st = fu_struct_amd_afc_varstore_header_new_internal();
895
123
    st->buf = g_byte_array_sized_new(27);
896
123
    fu_byte_array_set_size(st->buf, 27, 0x0);
897
123
    return st;
898
123
}
899
/**
900
 * fu_struct_amd_afc_varstore_header_to_string: (skip):
901
 **/
902
static gchar *
903
fu_struct_amd_afc_varstore_header_to_string(const FuStructAmdAfcVarstoreHeader *st)
904
0
{
905
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcVarstoreHeader:\n");
906
0
    g_return_val_if_fail(st != NULL, NULL);
907
0
    g_string_append_printf(str, "  length: 0x%x\n",
908
0
                           (guint) fu_struct_amd_afc_varstore_header_get_length(st));
909
0
    g_string_append_printf(str, "  name_size: 0x%x\n",
910
0
                           (guint) fu_struct_amd_afc_varstore_header_get_name_size(st));
911
0
    g_string_append_printf(str, "  id: 0x%x\n",
912
0
                           (guint) fu_struct_amd_afc_varstore_header_get_id(st));
913
0
    g_string_append_printf(str, "  data_size: 0x%x\n",
914
0
                           (guint) fu_struct_amd_afc_varstore_header_get_data_size(st));
915
0
    if (str->len > 0)
916
0
        g_string_set_size(str, str->len - 1);
917
0
    return g_string_free(g_steal_pointer(&str), FALSE);
918
0
}
919
static gboolean
920
fu_struct_amd_afc_varstore_header_parse_internal(FuStructAmdAfcVarstoreHeader *st, GError **error)
921
11.7k
{
922
11.7k
    if (g_log_get_debug_enabled()) {
923
0
        g_autofree gchar *str = fu_struct_amd_afc_varstore_header_to_string(st);
924
0
        g_debug("%s", str);
925
0
    }
926
11.7k
    return TRUE;
927
11.7k
}
928
929
/**
930
 * fu_struct_amd_afc_varstore_header_parse: (skip):
931
 **/
932
static FuStructAmdAfcVarstoreHeader *
933
fu_struct_amd_afc_varstore_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
934
11.7k
{
935
11.7k
    g_autoptr(FuStructAmdAfcVarstoreHeader) st = fu_struct_amd_afc_varstore_header_new_internal();
936
11.7k
    g_return_val_if_fail(buf != NULL, NULL);
937
11.7k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
938
11.7k
    if (!fu_memchk_read(bufsz, offset, 27, error)) {
939
2
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcVarstoreHeader: ");
940
2
        return NULL;
941
2
    }
942
11.7k
    st->buf = g_byte_array_new();
943
11.7k
    g_byte_array_append(st->buf, buf + offset, 27);
944
11.7k
    if (!fu_struct_amd_afc_varstore_header_parse_internal(st, error))
945
0
        return NULL;
946
11.7k
    return g_steal_pointer(&st);
947
11.7k
}
948
/**
949
 * fu_struct_amd_afc_varstore_header_parse_bytes: (skip):
950
 **/
951
FuStructAmdAfcVarstoreHeader *
952
fu_struct_amd_afc_varstore_header_parse_bytes(GBytes *blob, gsize offset, GError **error)
953
11.7k
{
954
11.7k
    gsize bufsz = 0;
955
11.7k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
956
11.7k
    if (buf == NULL)
957
0
        return NULL;
958
11.7k
    return fu_struct_amd_afc_varstore_header_parse(buf, bufsz, offset, error);
959
11.7k
}
960
/**
961
 * fu_struct_amd_afc_hii_package_header_ref: (skip):
962
 **/
963
FuStructAmdAfcHiiPackageHeader *
964
fu_struct_amd_afc_hii_package_header_ref(FuStructAmdAfcHiiPackageHeader *st)
965
0
{
966
0
    g_return_val_if_fail(st != NULL, NULL);
967
0
    st->refcount++;
968
0
    return st;
969
0
}
970
/**
971
 * fu_struct_amd_afc_hii_package_header_unref: (skip):
972
 **/
973
void
974
fu_struct_amd_afc_hii_package_header_unref(FuStructAmdAfcHiiPackageHeader *st)
975
23.8k
{
976
23.8k
    g_return_if_fail(st != NULL);
977
23.8k
    if (st->refcount == 0) {
978
0
        g_critical("FuStructAmdAfcHiiPackageHeader refcount already zero");
979
0
        return;
980
0
    }
981
23.8k
    if (--st->refcount > 0)
982
0
        return;
983
23.8k
    if (st->buf != NULL)
984
23.8k
        g_byte_array_unref(st->buf);
985
23.8k
    g_free(st);
986
23.8k
}
987
/**
988
 * fu_struct_amd_afc_hii_package_header_new_internal: (skip):
989
 **/
990
static FuStructAmdAfcHiiPackageHeader *
991
fu_struct_amd_afc_hii_package_header_new_internal(void)
992
23.8k
{
993
23.8k
    FuStructAmdAfcHiiPackageHeader *st = g_new0(FuStructAmdAfcHiiPackageHeader, 1);
994
23.8k
    st->refcount = 1;
995
23.8k
    return st;
996
23.8k
}
997
998
/* getters */
999
/**
1000
 * fu_struct_amd_afc_hii_package_header_get_length: (skip):
1001
 **/
1002
guint32
1003
fu_struct_amd_afc_hii_package_header_get_length(const FuStructAmdAfcHiiPackageHeader *st)
1004
23.8k
{
1005
23.8k
    g_return_val_if_fail(st != NULL, 0x0);
1006
23.8k
    return fu_memread_uint24(st->buf->data + 0, G_LITTLE_ENDIAN);
1007
23.8k
}
1008
/**
1009
 * fu_struct_amd_afc_hii_package_header_get_kind: (skip):
1010
 **/
1011
FuAmdAfcHiiPackageKind
1012
fu_struct_amd_afc_hii_package_header_get_kind(const FuStructAmdAfcHiiPackageHeader *st)
1013
23.8k
{
1014
23.8k
    g_return_val_if_fail(st != NULL, 0x0);
1015
23.8k
    return st->buf->data[3];
1016
23.8k
}
1017
1018
/* setters */
1019
/**
1020
 * fu_struct_amd_afc_hii_package_header_to_string: (skip):
1021
 **/
1022
static gchar *
1023
fu_struct_amd_afc_hii_package_header_to_string(const FuStructAmdAfcHiiPackageHeader *st)
1024
0
{
1025
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcHiiPackageHeader:\n");
1026
0
    g_return_val_if_fail(st != NULL, NULL);
1027
0
    g_string_append_printf(str, "  length: 0x%x\n",
1028
0
                           (guint) fu_struct_amd_afc_hii_package_header_get_length(st));
1029
0
    {
1030
0
        const gchar *tmp = fu_amd_afc_hii_package_kind_to_string(fu_struct_amd_afc_hii_package_header_get_kind(st));
1031
0
        if (tmp != NULL) {
1032
0
            g_string_append_printf(str, "  kind: 0x%x [%s]\n", (guint) fu_struct_amd_afc_hii_package_header_get_kind(st), tmp);
1033
0
        } else {
1034
0
            g_string_append_printf(str, "  kind: 0x%x\n", (guint) fu_struct_amd_afc_hii_package_header_get_kind(st));
1035
0
        }
1036
0
    }
1037
0
    if (str->len > 0)
1038
0
        g_string_set_size(str, str->len - 1);
1039
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1040
0
}
1041
static gboolean
1042
fu_struct_amd_afc_hii_package_header_parse_internal(FuStructAmdAfcHiiPackageHeader *st, GError **error)
1043
23.8k
{
1044
23.8k
    if (g_log_get_debug_enabled()) {
1045
0
        g_autofree gchar *str = fu_struct_amd_afc_hii_package_header_to_string(st);
1046
0
        g_debug("%s", str);
1047
0
    }
1048
23.8k
    return TRUE;
1049
23.8k
}
1050
1051
/**
1052
 * fu_struct_amd_afc_hii_package_header_parse: (skip):
1053
 **/
1054
static FuStructAmdAfcHiiPackageHeader *
1055
fu_struct_amd_afc_hii_package_header_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1056
23.8k
{
1057
23.8k
    g_autoptr(FuStructAmdAfcHiiPackageHeader) st = fu_struct_amd_afc_hii_package_header_new_internal();
1058
23.8k
    g_return_val_if_fail(buf != NULL, NULL);
1059
23.8k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1060
23.8k
    if (!fu_memchk_read(bufsz, offset, 4, error)) {
1061
66
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcHiiPackageHeader: ");
1062
66
        return NULL;
1063
66
    }
1064
23.8k
    st->buf = g_byte_array_new();
1065
23.8k
    g_byte_array_append(st->buf, buf + offset, 4);
1066
23.8k
    if (!fu_struct_amd_afc_hii_package_header_parse_internal(st, error))
1067
0
        return NULL;
1068
23.8k
    return g_steal_pointer(&st);
1069
23.8k
}
1070
/**
1071
 * fu_struct_amd_afc_hii_package_header_parse_bytes: (skip):
1072
 **/
1073
FuStructAmdAfcHiiPackageHeader *
1074
fu_struct_amd_afc_hii_package_header_parse_bytes(GBytes *blob, gsize offset, GError **error)
1075
23.8k
{
1076
23.8k
    gsize bufsz = 0;
1077
23.8k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1078
23.8k
    if (buf == NULL)
1079
0
        return NULL;
1080
23.8k
    return fu_struct_amd_afc_hii_package_header_parse(buf, bufsz, offset, error);
1081
23.8k
}
1082
/**
1083
 * fu_struct_amd_afc_ifr_form_ref: (skip):
1084
 **/
1085
FuStructAmdAfcIfrForm *
1086
fu_struct_amd_afc_ifr_form_ref(FuStructAmdAfcIfrForm *st)
1087
0
{
1088
0
    g_return_val_if_fail(st != NULL, NULL);
1089
0
    st->refcount++;
1090
0
    return st;
1091
0
}
1092
/**
1093
 * fu_struct_amd_afc_ifr_form_unref: (skip):
1094
 **/
1095
void
1096
fu_struct_amd_afc_ifr_form_unref(FuStructAmdAfcIfrForm *st)
1097
20.2k
{
1098
20.2k
    g_return_if_fail(st != NULL);
1099
20.2k
    if (st->refcount == 0) {
1100
0
        g_critical("FuStructAmdAfcIfrForm refcount already zero");
1101
0
        return;
1102
0
    }
1103
20.2k
    if (--st->refcount > 0)
1104
0
        return;
1105
20.2k
    if (st->buf != NULL)
1106
20.2k
        g_byte_array_unref(st->buf);
1107
20.2k
    g_free(st);
1108
20.2k
}
1109
/**
1110
 * fu_struct_amd_afc_ifr_form_new_internal: (skip):
1111
 **/
1112
static FuStructAmdAfcIfrForm *
1113
fu_struct_amd_afc_ifr_form_new_internal(void)
1114
20.2k
{
1115
20.2k
    FuStructAmdAfcIfrForm *st = g_new0(FuStructAmdAfcIfrForm, 1);
1116
20.2k
    st->refcount = 1;
1117
20.2k
    return st;
1118
20.2k
}
1119
1120
/* getters */
1121
/**
1122
 * fu_struct_amd_afc_ifr_form_get_opcode: (skip):
1123
 **/
1124
guint8
1125
fu_struct_amd_afc_ifr_form_get_opcode(const FuStructAmdAfcIfrForm *st)
1126
0
{
1127
0
    g_return_val_if_fail(st != NULL, 0x0);
1128
0
    return st->buf->data[0];
1129
0
}
1130
/**
1131
 * fu_struct_amd_afc_ifr_form_get_length_scope: (skip):
1132
 **/
1133
guint8
1134
fu_struct_amd_afc_ifr_form_get_length_scope(const FuStructAmdAfcIfrForm *st)
1135
0
{
1136
0
    g_return_val_if_fail(st != NULL, 0x0);
1137
0
    return st->buf->data[1];
1138
0
}
1139
/**
1140
 * fu_struct_amd_afc_ifr_form_get_id: (skip):
1141
 **/
1142
guint16
1143
fu_struct_amd_afc_ifr_form_get_id(const FuStructAmdAfcIfrForm *st)
1144
20.2k
{
1145
20.2k
    g_return_val_if_fail(st != NULL, 0x0);
1146
20.2k
    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
1147
20.2k
}
1148
/**
1149
 * fu_struct_amd_afc_ifr_form_get_title: (skip):
1150
 **/
1151
guint16
1152
fu_struct_amd_afc_ifr_form_get_title(const FuStructAmdAfcIfrForm *st)
1153
20.2k
{
1154
20.2k
    g_return_val_if_fail(st != NULL, 0x0);
1155
20.2k
    return fu_memread_uint16(st->buf->data + 4, G_LITTLE_ENDIAN);
1156
20.2k
}
1157
1158
/* setters */
1159
/**
1160
 * fu_struct_amd_afc_ifr_form_to_string: (skip):
1161
 **/
1162
static gchar *
1163
fu_struct_amd_afc_ifr_form_to_string(const FuStructAmdAfcIfrForm *st)
1164
0
{
1165
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrForm:\n");
1166
0
    g_return_val_if_fail(st != NULL, NULL);
1167
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1168
0
                           (guint) fu_struct_amd_afc_ifr_form_get_opcode(st));
1169
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
1170
0
                           (guint) fu_struct_amd_afc_ifr_form_get_length_scope(st));
1171
0
    g_string_append_printf(str, "  id: 0x%x\n",
1172
0
                           (guint) fu_struct_amd_afc_ifr_form_get_id(st));
1173
0
    g_string_append_printf(str, "  title: 0x%x\n",
1174
0
                           (guint) fu_struct_amd_afc_ifr_form_get_title(st));
1175
0
    if (str->len > 0)
1176
0
        g_string_set_size(str, str->len - 1);
1177
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1178
0
}
1179
static gboolean
1180
fu_struct_amd_afc_ifr_form_parse_internal(FuStructAmdAfcIfrForm *st, GError **error)
1181
20.2k
{
1182
20.2k
    if (g_log_get_debug_enabled()) {
1183
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_form_to_string(st);
1184
0
        g_debug("%s", str);
1185
0
    }
1186
20.2k
    return TRUE;
1187
20.2k
}
1188
1189
/**
1190
 * fu_struct_amd_afc_ifr_form_parse: (skip):
1191
 **/
1192
static FuStructAmdAfcIfrForm *
1193
fu_struct_amd_afc_ifr_form_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1194
20.2k
{
1195
20.2k
    g_autoptr(FuStructAmdAfcIfrForm) st = fu_struct_amd_afc_ifr_form_new_internal();
1196
20.2k
    g_return_val_if_fail(buf != NULL, NULL);
1197
20.2k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1198
20.2k
    if (!fu_memchk_read(bufsz, offset, 6, error)) {
1199
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrForm: ");
1200
0
        return NULL;
1201
0
    }
1202
20.2k
    st->buf = g_byte_array_new();
1203
20.2k
    g_byte_array_append(st->buf, buf + offset, 6);
1204
20.2k
    if (!fu_struct_amd_afc_ifr_form_parse_internal(st, error))
1205
0
        return NULL;
1206
20.2k
    return g_steal_pointer(&st);
1207
20.2k
}
1208
/**
1209
 * fu_struct_amd_afc_ifr_form_parse_bytes: (skip):
1210
 **/
1211
FuStructAmdAfcIfrForm *
1212
fu_struct_amd_afc_ifr_form_parse_bytes(GBytes *blob, gsize offset, GError **error)
1213
20.2k
{
1214
20.2k
    gsize bufsz = 0;
1215
20.2k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1216
20.2k
    if (buf == NULL)
1217
0
        return NULL;
1218
20.2k
    return fu_struct_amd_afc_ifr_form_parse(buf, bufsz, offset, error);
1219
20.2k
}
1220
/**
1221
 * fu_struct_amd_afc_ifr_question_ref: (skip):
1222
 **/
1223
FuStructAmdAfcIfrQuestion *
1224
fu_struct_amd_afc_ifr_question_ref(FuStructAmdAfcIfrQuestion *st)
1225
0
{
1226
0
    g_return_val_if_fail(st != NULL, NULL);
1227
0
    st->refcount++;
1228
0
    return st;
1229
0
}
1230
/**
1231
 * fu_struct_amd_afc_ifr_question_unref: (skip):
1232
 **/
1233
void
1234
fu_struct_amd_afc_ifr_question_unref(FuStructAmdAfcIfrQuestion *st)
1235
36.8k
{
1236
36.8k
    g_return_if_fail(st != NULL);
1237
36.8k
    if (st->refcount == 0) {
1238
0
        g_critical("FuStructAmdAfcIfrQuestion refcount already zero");
1239
0
        return;
1240
0
    }
1241
36.8k
    if (--st->refcount > 0)
1242
0
        return;
1243
36.8k
    if (st->buf != NULL)
1244
36.8k
        g_byte_array_unref(st->buf);
1245
36.8k
    g_free(st);
1246
36.8k
}
1247
/**
1248
 * fu_struct_amd_afc_ifr_question_new_internal: (skip):
1249
 **/
1250
static FuStructAmdAfcIfrQuestion *
1251
fu_struct_amd_afc_ifr_question_new_internal(void)
1252
36.8k
{
1253
36.8k
    FuStructAmdAfcIfrQuestion *st = g_new0(FuStructAmdAfcIfrQuestion, 1);
1254
36.8k
    st->refcount = 1;
1255
36.8k
    return st;
1256
36.8k
}
1257
1258
/* getters */
1259
/**
1260
 * fu_struct_amd_afc_ifr_question_get_opcode: (skip):
1261
 **/
1262
guint8
1263
fu_struct_amd_afc_ifr_question_get_opcode(const FuStructAmdAfcIfrQuestion *st)
1264
0
{
1265
0
    g_return_val_if_fail(st != NULL, 0x0);
1266
0
    return st->buf->data[0];
1267
0
}
1268
/**
1269
 * fu_struct_amd_afc_ifr_question_get_length_scope: (skip):
1270
 **/
1271
guint8
1272
fu_struct_amd_afc_ifr_question_get_length_scope(const FuStructAmdAfcIfrQuestion *st)
1273
0
{
1274
0
    g_return_val_if_fail(st != NULL, 0x0);
1275
0
    return st->buf->data[1];
1276
0
}
1277
/**
1278
 * fu_struct_amd_afc_ifr_question_get_prompt: (skip):
1279
 **/
1280
guint16
1281
fu_struct_amd_afc_ifr_question_get_prompt(const FuStructAmdAfcIfrQuestion *st)
1282
36.8k
{
1283
36.8k
    g_return_val_if_fail(st != NULL, 0x0);
1284
36.8k
    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
1285
36.8k
}
1286
/**
1287
 * fu_struct_amd_afc_ifr_question_get_help: (skip):
1288
 **/
1289
guint16
1290
fu_struct_amd_afc_ifr_question_get_help(const FuStructAmdAfcIfrQuestion *st)
1291
0
{
1292
0
    g_return_val_if_fail(st != NULL, 0x0);
1293
0
    return fu_memread_uint16(st->buf->data + 4, G_LITTLE_ENDIAN);
1294
0
}
1295
/**
1296
 * fu_struct_amd_afc_ifr_question_get_id: (skip):
1297
 **/
1298
guint16
1299
fu_struct_amd_afc_ifr_question_get_id(const FuStructAmdAfcIfrQuestion *st)
1300
17.0k
{
1301
17.0k
    g_return_val_if_fail(st != NULL, 0x0);
1302
17.0k
    return fu_memread_uint16(st->buf->data + 6, G_LITTLE_ENDIAN);
1303
17.0k
}
1304
/**
1305
 * fu_struct_amd_afc_ifr_question_get_varstore_id: (skip):
1306
 **/
1307
guint16
1308
fu_struct_amd_afc_ifr_question_get_varstore_id(const FuStructAmdAfcIfrQuestion *st)
1309
17.0k
{
1310
17.0k
    g_return_val_if_fail(st != NULL, 0x0);
1311
17.0k
    return fu_memread_uint16(st->buf->data + 8, G_LITTLE_ENDIAN);
1312
17.0k
}
1313
/**
1314
 * fu_struct_amd_afc_ifr_question_get_varstore_offset: (skip):
1315
 **/
1316
guint16
1317
fu_struct_amd_afc_ifr_question_get_varstore_offset(const FuStructAmdAfcIfrQuestion *st)
1318
17.0k
{
1319
17.0k
    g_return_val_if_fail(st != NULL, 0x0);
1320
17.0k
    return fu_memread_uint16(st->buf->data + 10, G_LITTLE_ENDIAN);
1321
17.0k
}
1322
/**
1323
 * fu_struct_amd_afc_ifr_question_get_flags: (skip):
1324
 **/
1325
guint8
1326
fu_struct_amd_afc_ifr_question_get_flags(const FuStructAmdAfcIfrQuestion *st)
1327
17.0k
{
1328
17.0k
    g_return_val_if_fail(st != NULL, 0x0);
1329
17.0k
    return st->buf->data[12];
1330
17.0k
}
1331
/**
1332
 * fu_struct_amd_afc_ifr_question_get_value_type: (skip):
1333
 **/
1334
guint8
1335
fu_struct_amd_afc_ifr_question_get_value_type(const FuStructAmdAfcIfrQuestion *st)
1336
36.8k
{
1337
36.8k
    g_return_val_if_fail(st != NULL, 0x0);
1338
36.8k
    return st->buf->data[13];
1339
36.8k
}
1340
1341
/* setters */
1342
/**
1343
 * fu_struct_amd_afc_ifr_question_to_string: (skip):
1344
 **/
1345
static gchar *
1346
fu_struct_amd_afc_ifr_question_to_string(const FuStructAmdAfcIfrQuestion *st)
1347
0
{
1348
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrQuestion:\n");
1349
0
    g_return_val_if_fail(st != NULL, NULL);
1350
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1351
0
                           (guint) fu_struct_amd_afc_ifr_question_get_opcode(st));
1352
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
1353
0
                           (guint) fu_struct_amd_afc_ifr_question_get_length_scope(st));
1354
0
    g_string_append_printf(str, "  prompt: 0x%x\n",
1355
0
                           (guint) fu_struct_amd_afc_ifr_question_get_prompt(st));
1356
0
    g_string_append_printf(str, "  help: 0x%x\n",
1357
0
                           (guint) fu_struct_amd_afc_ifr_question_get_help(st));
1358
0
    g_string_append_printf(str, "  id: 0x%x\n",
1359
0
                           (guint) fu_struct_amd_afc_ifr_question_get_id(st));
1360
0
    g_string_append_printf(str, "  varstore_id: 0x%x\n",
1361
0
                           (guint) fu_struct_amd_afc_ifr_question_get_varstore_id(st));
1362
0
    g_string_append_printf(str, "  varstore_offset: 0x%x\n",
1363
0
                           (guint) fu_struct_amd_afc_ifr_question_get_varstore_offset(st));
1364
0
    g_string_append_printf(str, "  flags: 0x%x\n",
1365
0
                           (guint) fu_struct_amd_afc_ifr_question_get_flags(st));
1366
0
    g_string_append_printf(str, "  value_type: 0x%x\n",
1367
0
                           (guint) fu_struct_amd_afc_ifr_question_get_value_type(st));
1368
0
    if (str->len > 0)
1369
0
        g_string_set_size(str, str->len - 1);
1370
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1371
0
}
1372
static gboolean
1373
fu_struct_amd_afc_ifr_question_parse_internal(FuStructAmdAfcIfrQuestion *st, GError **error)
1374
36.8k
{
1375
36.8k
    if (g_log_get_debug_enabled()) {
1376
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_question_to_string(st);
1377
0
        g_debug("%s", str);
1378
0
    }
1379
36.8k
    return TRUE;
1380
36.8k
}
1381
1382
/**
1383
 * fu_struct_amd_afc_ifr_question_parse: (skip):
1384
 **/
1385
static FuStructAmdAfcIfrQuestion *
1386
fu_struct_amd_afc_ifr_question_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1387
36.8k
{
1388
36.8k
    g_autoptr(FuStructAmdAfcIfrQuestion) st = fu_struct_amd_afc_ifr_question_new_internal();
1389
36.8k
    g_return_val_if_fail(buf != NULL, NULL);
1390
36.8k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1391
36.8k
    if (!fu_memchk_read(bufsz, offset, 14, error)) {
1392
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrQuestion: ");
1393
0
        return NULL;
1394
0
    }
1395
36.8k
    st->buf = g_byte_array_new();
1396
36.8k
    g_byte_array_append(st->buf, buf + offset, 14);
1397
36.8k
    if (!fu_struct_amd_afc_ifr_question_parse_internal(st, error))
1398
0
        return NULL;
1399
36.8k
    return g_steal_pointer(&st);
1400
36.8k
}
1401
/**
1402
 * fu_struct_amd_afc_ifr_question_parse_bytes: (skip):
1403
 **/
1404
FuStructAmdAfcIfrQuestion *
1405
fu_struct_amd_afc_ifr_question_parse_bytes(GBytes *blob, gsize offset, GError **error)
1406
36.8k
{
1407
36.8k
    gsize bufsz = 0;
1408
36.8k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1409
36.8k
    if (buf == NULL)
1410
0
        return NULL;
1411
36.8k
    return fu_struct_amd_afc_ifr_question_parse(buf, bufsz, offset, error);
1412
36.8k
}
1413
/**
1414
 * fu_struct_amd_afc_ifr_form_set_ref: (skip):
1415
 **/
1416
FuStructAmdAfcIfrFormSet *
1417
fu_struct_amd_afc_ifr_form_set_ref(FuStructAmdAfcIfrFormSet *st)
1418
0
{
1419
0
    g_return_val_if_fail(st != NULL, NULL);
1420
0
    st->refcount++;
1421
0
    return st;
1422
0
}
1423
/**
1424
 * fu_struct_amd_afc_ifr_form_set_unref: (skip):
1425
 **/
1426
void
1427
fu_struct_amd_afc_ifr_form_set_unref(FuStructAmdAfcIfrFormSet *st)
1428
11.3k
{
1429
11.3k
    g_return_if_fail(st != NULL);
1430
11.3k
    if (st->refcount == 0) {
1431
0
        g_critical("FuStructAmdAfcIfrFormSet refcount already zero");
1432
0
        return;
1433
0
    }
1434
11.3k
    if (--st->refcount > 0)
1435
0
        return;
1436
11.3k
    if (st->buf != NULL)
1437
11.3k
        g_byte_array_unref(st->buf);
1438
11.3k
    g_free(st);
1439
11.3k
}
1440
/**
1441
 * fu_struct_amd_afc_ifr_form_set_new_internal: (skip):
1442
 **/
1443
static FuStructAmdAfcIfrFormSet *
1444
fu_struct_amd_afc_ifr_form_set_new_internal(void)
1445
11.3k
{
1446
11.3k
    FuStructAmdAfcIfrFormSet *st = g_new0(FuStructAmdAfcIfrFormSet, 1);
1447
11.3k
    st->refcount = 1;
1448
11.3k
    return st;
1449
11.3k
}
1450
1451
/* getters */
1452
/**
1453
 * fu_struct_amd_afc_ifr_form_set_get_opcode: (skip):
1454
 **/
1455
guint8
1456
fu_struct_amd_afc_ifr_form_set_get_opcode(const FuStructAmdAfcIfrFormSet *st)
1457
0
{
1458
0
    g_return_val_if_fail(st != NULL, 0x0);
1459
0
    return st->buf->data[0];
1460
0
}
1461
/**
1462
 * fu_struct_amd_afc_ifr_form_set_get_length_scope: (skip):
1463
 **/
1464
guint8
1465
fu_struct_amd_afc_ifr_form_set_get_length_scope(const FuStructAmdAfcIfrFormSet *st)
1466
0
{
1467
0
    g_return_val_if_fail(st != NULL, 0x0);
1468
0
    return st->buf->data[1];
1469
0
}
1470
/**
1471
 * fu_struct_amd_afc_ifr_form_set_get_guid: (skip):
1472
 **/
1473
const fwupd_guid_t *
1474
fu_struct_amd_afc_ifr_form_set_get_guid(const FuStructAmdAfcIfrFormSet *st)
1475
0
{
1476
0
    g_return_val_if_fail(st != NULL, NULL);
1477
0
    return (const fwupd_guid_t *) (st->buf->data + 2);
1478
0
}
1479
/**
1480
 * fu_struct_amd_afc_ifr_form_set_get_title: (skip):
1481
 **/
1482
guint16
1483
fu_struct_amd_afc_ifr_form_set_get_title(const FuStructAmdAfcIfrFormSet *st)
1484
11.3k
{
1485
11.3k
    g_return_val_if_fail(st != NULL, 0x0);
1486
11.3k
    return fu_memread_uint16(st->buf->data + 18, G_LITTLE_ENDIAN);
1487
11.3k
}
1488
/**
1489
 * fu_struct_amd_afc_ifr_form_set_get_help: (skip):
1490
 **/
1491
guint16
1492
fu_struct_amd_afc_ifr_form_set_get_help(const FuStructAmdAfcIfrFormSet *st)
1493
0
{
1494
0
    g_return_val_if_fail(st != NULL, 0x0);
1495
0
    return fu_memread_uint16(st->buf->data + 20, G_LITTLE_ENDIAN);
1496
0
}
1497
/**
1498
 * fu_struct_amd_afc_ifr_form_set_get_flags: (skip):
1499
 **/
1500
guint8
1501
fu_struct_amd_afc_ifr_form_set_get_flags(const FuStructAmdAfcIfrFormSet *st)
1502
0
{
1503
0
    g_return_val_if_fail(st != NULL, 0x0);
1504
0
    return st->buf->data[22];
1505
0
}
1506
1507
/* setters */
1508
/**
1509
 * fu_struct_amd_afc_ifr_form_set_to_string: (skip):
1510
 **/
1511
static gchar *
1512
fu_struct_amd_afc_ifr_form_set_to_string(const FuStructAmdAfcIfrFormSet *st)
1513
0
{
1514
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrFormSet:\n");
1515
0
    g_return_val_if_fail(st != NULL, NULL);
1516
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1517
0
                           (guint) fu_struct_amd_afc_ifr_form_set_get_opcode(st));
1518
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
1519
0
                           (guint) fu_struct_amd_afc_ifr_form_set_get_length_scope(st));
1520
0
    {
1521
0
        g_autofree gchar *tmp = fwupd_guid_to_string(fu_struct_amd_afc_ifr_form_set_get_guid(st), FWUPD_GUID_FLAG_MIXED_ENDIAN);
1522
0
        g_string_append_printf(str, "  guid: %s\n", tmp);
1523
0
    }
1524
0
    g_string_append_printf(str, "  title: 0x%x\n",
1525
0
                           (guint) fu_struct_amd_afc_ifr_form_set_get_title(st));
1526
0
    g_string_append_printf(str, "  help: 0x%x\n",
1527
0
                           (guint) fu_struct_amd_afc_ifr_form_set_get_help(st));
1528
0
    g_string_append_printf(str, "  flags: 0x%x\n",
1529
0
                           (guint) fu_struct_amd_afc_ifr_form_set_get_flags(st));
1530
0
    if (str->len > 0)
1531
0
        g_string_set_size(str, str->len - 1);
1532
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1533
0
}
1534
static gboolean
1535
fu_struct_amd_afc_ifr_form_set_parse_internal(FuStructAmdAfcIfrFormSet *st, GError **error)
1536
11.3k
{
1537
11.3k
    if (g_log_get_debug_enabled()) {
1538
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_form_set_to_string(st);
1539
0
        g_debug("%s", str);
1540
0
    }
1541
11.3k
    return TRUE;
1542
11.3k
}
1543
1544
/**
1545
 * fu_struct_amd_afc_ifr_form_set_parse: (skip):
1546
 **/
1547
static FuStructAmdAfcIfrFormSet *
1548
fu_struct_amd_afc_ifr_form_set_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1549
11.3k
{
1550
11.3k
    g_autoptr(FuStructAmdAfcIfrFormSet) st = fu_struct_amd_afc_ifr_form_set_new_internal();
1551
11.3k
    g_return_val_if_fail(buf != NULL, NULL);
1552
11.3k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1553
11.3k
    if (!fu_memchk_read(bufsz, offset, 23, error)) {
1554
1
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrFormSet: ");
1555
1
        return NULL;
1556
1
    }
1557
11.3k
    st->buf = g_byte_array_new();
1558
11.3k
    g_byte_array_append(st->buf, buf + offset, 23);
1559
11.3k
    if (!fu_struct_amd_afc_ifr_form_set_parse_internal(st, error))
1560
0
        return NULL;
1561
11.3k
    return g_steal_pointer(&st);
1562
11.3k
}
1563
/**
1564
 * fu_struct_amd_afc_ifr_form_set_parse_bytes: (skip):
1565
 **/
1566
FuStructAmdAfcIfrFormSet *
1567
fu_struct_amd_afc_ifr_form_set_parse_bytes(GBytes *blob, gsize offset, GError **error)
1568
11.3k
{
1569
11.3k
    gsize bufsz = 0;
1570
11.3k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1571
11.3k
    if (buf == NULL)
1572
0
        return NULL;
1573
11.3k
    return fu_struct_amd_afc_ifr_form_set_parse(buf, bufsz, offset, error);
1574
11.3k
}
1575
/**
1576
 * fu_struct_amd_afc_ifr_ref_ref: (skip):
1577
 **/
1578
FuStructAmdAfcIfrRef *
1579
fu_struct_amd_afc_ifr_ref_ref(FuStructAmdAfcIfrRef *st)
1580
0
{
1581
0
    g_return_val_if_fail(st != NULL, NULL);
1582
0
    st->refcount++;
1583
0
    return st;
1584
0
}
1585
/**
1586
 * fu_struct_amd_afc_ifr_ref_unref: (skip):
1587
 **/
1588
void
1589
fu_struct_amd_afc_ifr_ref_unref(FuStructAmdAfcIfrRef *st)
1590
399
{
1591
399
    g_return_if_fail(st != NULL);
1592
399
    if (st->refcount == 0) {
1593
0
        g_critical("FuStructAmdAfcIfrRef refcount already zero");
1594
0
        return;
1595
0
    }
1596
399
    if (--st->refcount > 0)
1597
0
        return;
1598
399
    if (st->buf != NULL)
1599
399
        g_byte_array_unref(st->buf);
1600
399
    g_free(st);
1601
399
}
1602
/**
1603
 * fu_struct_amd_afc_ifr_ref_new_internal: (skip):
1604
 **/
1605
static FuStructAmdAfcIfrRef *
1606
fu_struct_amd_afc_ifr_ref_new_internal(void)
1607
399
{
1608
399
    FuStructAmdAfcIfrRef *st = g_new0(FuStructAmdAfcIfrRef, 1);
1609
399
    st->refcount = 1;
1610
399
    return st;
1611
399
}
1612
1613
/* getters */
1614
/**
1615
 * fu_struct_amd_afc_ifr_ref_get_opcode: (skip):
1616
 **/
1617
guint8
1618
fu_struct_amd_afc_ifr_ref_get_opcode(const FuStructAmdAfcIfrRef *st)
1619
0
{
1620
0
    g_return_val_if_fail(st != NULL, 0x0);
1621
0
    return st->buf->data[0];
1622
0
}
1623
/**
1624
 * fu_struct_amd_afc_ifr_ref_get_length_scope: (skip):
1625
 **/
1626
guint8
1627
fu_struct_amd_afc_ifr_ref_get_length_scope(const FuStructAmdAfcIfrRef *st)
1628
0
{
1629
0
    g_return_val_if_fail(st != NULL, 0x0);
1630
0
    return st->buf->data[1];
1631
0
}
1632
/**
1633
 * fu_struct_amd_afc_ifr_ref_get_prompt: (skip):
1634
 **/
1635
guint16
1636
fu_struct_amd_afc_ifr_ref_get_prompt(const FuStructAmdAfcIfrRef *st)
1637
0
{
1638
0
    g_return_val_if_fail(st != NULL, 0x0);
1639
0
    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
1640
0
}
1641
/**
1642
 * fu_struct_amd_afc_ifr_ref_get_help: (skip):
1643
 **/
1644
guint16
1645
fu_struct_amd_afc_ifr_ref_get_help(const FuStructAmdAfcIfrRef *st)
1646
0
{
1647
0
    g_return_val_if_fail(st != NULL, 0x0);
1648
0
    return fu_memread_uint16(st->buf->data + 4, G_LITTLE_ENDIAN);
1649
0
}
1650
/**
1651
 * fu_struct_amd_afc_ifr_ref_get_question_id: (skip):
1652
 **/
1653
guint16
1654
fu_struct_amd_afc_ifr_ref_get_question_id(const FuStructAmdAfcIfrRef *st)
1655
0
{
1656
0
    g_return_val_if_fail(st != NULL, 0x0);
1657
0
    return fu_memread_uint16(st->buf->data + 6, G_LITTLE_ENDIAN);
1658
0
}
1659
/**
1660
 * fu_struct_amd_afc_ifr_ref_get_varstore_id: (skip):
1661
 **/
1662
guint16
1663
fu_struct_amd_afc_ifr_ref_get_varstore_id(const FuStructAmdAfcIfrRef *st)
1664
0
{
1665
0
    g_return_val_if_fail(st != NULL, 0x0);
1666
0
    return fu_memread_uint16(st->buf->data + 8, G_LITTLE_ENDIAN);
1667
0
}
1668
/**
1669
 * fu_struct_amd_afc_ifr_ref_get_varstore_offset: (skip):
1670
 **/
1671
guint16
1672
fu_struct_amd_afc_ifr_ref_get_varstore_offset(const FuStructAmdAfcIfrRef *st)
1673
0
{
1674
0
    g_return_val_if_fail(st != NULL, 0x0);
1675
0
    return fu_memread_uint16(st->buf->data + 10, G_LITTLE_ENDIAN);
1676
0
}
1677
/**
1678
 * fu_struct_amd_afc_ifr_ref_get_question_flags: (skip):
1679
 **/
1680
FuAmdAfcQuestionFlags
1681
fu_struct_amd_afc_ifr_ref_get_question_flags(const FuStructAmdAfcIfrRef *st)
1682
0
{
1683
0
    g_return_val_if_fail(st != NULL, 0x0);
1684
0
    return st->buf->data[12];
1685
0
}
1686
/**
1687
 * fu_struct_amd_afc_ifr_ref_get_form_id: (skip):
1688
 **/
1689
guint16
1690
fu_struct_amd_afc_ifr_ref_get_form_id(const FuStructAmdAfcIfrRef *st)
1691
399
{
1692
399
    g_return_val_if_fail(st != NULL, 0x0);
1693
399
    return fu_memread_uint16(st->buf->data + 13, G_LITTLE_ENDIAN);
1694
399
}
1695
1696
/* setters */
1697
/**
1698
 * fu_struct_amd_afc_ifr_ref_to_string: (skip):
1699
 **/
1700
static gchar *
1701
fu_struct_amd_afc_ifr_ref_to_string(const FuStructAmdAfcIfrRef *st)
1702
0
{
1703
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrRef:\n");
1704
0
    g_return_val_if_fail(st != NULL, NULL);
1705
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1706
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_opcode(st));
1707
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
1708
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_length_scope(st));
1709
0
    g_string_append_printf(str, "  prompt: 0x%x\n",
1710
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_prompt(st));
1711
0
    g_string_append_printf(str, "  help: 0x%x\n",
1712
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_help(st));
1713
0
    g_string_append_printf(str, "  question_id: 0x%x\n",
1714
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_question_id(st));
1715
0
    g_string_append_printf(str, "  varstore_id: 0x%x\n",
1716
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_varstore_id(st));
1717
0
    g_string_append_printf(str, "  varstore_offset: 0x%x\n",
1718
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_varstore_offset(st));
1719
0
    {
1720
0
        const gchar *tmp = fu_amd_afc_question_flags_to_string(fu_struct_amd_afc_ifr_ref_get_question_flags(st));
1721
0
        if (tmp != NULL) {
1722
0
            g_string_append_printf(str, "  question_flags: 0x%x [%s]\n", (guint) fu_struct_amd_afc_ifr_ref_get_question_flags(st), tmp);
1723
0
        } else {
1724
0
            g_string_append_printf(str, "  question_flags: 0x%x\n", (guint) fu_struct_amd_afc_ifr_ref_get_question_flags(st));
1725
0
        }
1726
0
    }
1727
0
    g_string_append_printf(str, "  form_id: 0x%x\n",
1728
0
                           (guint) fu_struct_amd_afc_ifr_ref_get_form_id(st));
1729
0
    if (str->len > 0)
1730
0
        g_string_set_size(str, str->len - 1);
1731
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1732
0
}
1733
static gboolean
1734
fu_struct_amd_afc_ifr_ref_parse_internal(FuStructAmdAfcIfrRef *st, GError **error)
1735
399
{
1736
399
    if (g_log_get_debug_enabled()) {
1737
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_ref_to_string(st);
1738
0
        g_debug("%s", str);
1739
0
    }
1740
399
    return TRUE;
1741
399
}
1742
1743
/**
1744
 * fu_struct_amd_afc_ifr_ref_parse: (skip):
1745
 **/
1746
static FuStructAmdAfcIfrRef *
1747
fu_struct_amd_afc_ifr_ref_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1748
399
{
1749
399
    g_autoptr(FuStructAmdAfcIfrRef) st = fu_struct_amd_afc_ifr_ref_new_internal();
1750
399
    g_return_val_if_fail(buf != NULL, NULL);
1751
399
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1752
399
    if (!fu_memchk_read(bufsz, offset, 15, error)) {
1753
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrRef: ");
1754
0
        return NULL;
1755
0
    }
1756
399
    st->buf = g_byte_array_new();
1757
399
    g_byte_array_append(st->buf, buf + offset, 15);
1758
399
    if (!fu_struct_amd_afc_ifr_ref_parse_internal(st, error))
1759
0
        return NULL;
1760
399
    return g_steal_pointer(&st);
1761
399
}
1762
/**
1763
 * fu_struct_amd_afc_ifr_ref_parse_bytes: (skip):
1764
 **/
1765
FuStructAmdAfcIfrRef *
1766
fu_struct_amd_afc_ifr_ref_parse_bytes(GBytes *blob, gsize offset, GError **error)
1767
399
{
1768
399
    gsize bufsz = 0;
1769
399
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1770
399
    if (buf == NULL)
1771
0
        return NULL;
1772
399
    return fu_struct_amd_afc_ifr_ref_parse(buf, bufsz, offset, error);
1773
399
}
1774
/**
1775
 * fu_struct_amd_afc_ifr_guid_ref: (skip):
1776
 **/
1777
FuStructAmdAfcIfrGuid *
1778
fu_struct_amd_afc_ifr_guid_ref(FuStructAmdAfcIfrGuid *st)
1779
0
{
1780
0
    g_return_val_if_fail(st != NULL, NULL);
1781
0
    st->refcount++;
1782
0
    return st;
1783
0
}
1784
/**
1785
 * fu_struct_amd_afc_ifr_guid_unref: (skip):
1786
 **/
1787
void
1788
fu_struct_amd_afc_ifr_guid_unref(FuStructAmdAfcIfrGuid *st)
1789
147
{
1790
147
    g_return_if_fail(st != NULL);
1791
147
    if (st->refcount == 0) {
1792
0
        g_critical("FuStructAmdAfcIfrGuid refcount already zero");
1793
0
        return;
1794
0
    }
1795
147
    if (--st->refcount > 0)
1796
0
        return;
1797
147
    if (st->buf != NULL)
1798
146
        g_byte_array_unref(st->buf);
1799
147
    g_free(st);
1800
147
}
1801
/**
1802
 * fu_struct_amd_afc_ifr_guid_new_internal: (skip):
1803
 **/
1804
static FuStructAmdAfcIfrGuid *
1805
fu_struct_amd_afc_ifr_guid_new_internal(void)
1806
147
{
1807
147
    FuStructAmdAfcIfrGuid *st = g_new0(FuStructAmdAfcIfrGuid, 1);
1808
147
    st->refcount = 1;
1809
147
    return st;
1810
147
}
1811
1812
/* getters */
1813
/**
1814
 * fu_struct_amd_afc_ifr_guid_get_opcode: (skip):
1815
 **/
1816
guint8
1817
fu_struct_amd_afc_ifr_guid_get_opcode(const FuStructAmdAfcIfrGuid *st)
1818
0
{
1819
0
    g_return_val_if_fail(st != NULL, 0x0);
1820
0
    return st->buf->data[0];
1821
0
}
1822
/**
1823
 * fu_struct_amd_afc_ifr_guid_get_length_scope: (skip):
1824
 **/
1825
guint8
1826
fu_struct_amd_afc_ifr_guid_get_length_scope(const FuStructAmdAfcIfrGuid *st)
1827
0
{
1828
0
    g_return_val_if_fail(st != NULL, 0x0);
1829
0
    return st->buf->data[1];
1830
0
}
1831
/**
1832
 * fu_struct_amd_afc_ifr_guid_get_guid: (skip):
1833
 **/
1834
const fwupd_guid_t *
1835
fu_struct_amd_afc_ifr_guid_get_guid(const FuStructAmdAfcIfrGuid *st)
1836
146
{
1837
146
    g_return_val_if_fail(st != NULL, NULL);
1838
146
    return (const fwupd_guid_t *) (st->buf->data + 2);
1839
146
}
1840
1841
/* setters */
1842
/**
1843
 * fu_struct_amd_afc_ifr_guid_to_string: (skip):
1844
 **/
1845
static gchar *
1846
fu_struct_amd_afc_ifr_guid_to_string(const FuStructAmdAfcIfrGuid *st)
1847
0
{
1848
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrGuid:\n");
1849
0
    g_return_val_if_fail(st != NULL, NULL);
1850
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1851
0
                           (guint) fu_struct_amd_afc_ifr_guid_get_opcode(st));
1852
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
1853
0
                           (guint) fu_struct_amd_afc_ifr_guid_get_length_scope(st));
1854
0
    {
1855
0
        g_autofree gchar *tmp = fwupd_guid_to_string(fu_struct_amd_afc_ifr_guid_get_guid(st), FWUPD_GUID_FLAG_MIXED_ENDIAN);
1856
0
        g_string_append_printf(str, "  guid: %s\n", tmp);
1857
0
    }
1858
0
    if (str->len > 0)
1859
0
        g_string_set_size(str, str->len - 1);
1860
0
    return g_string_free(g_steal_pointer(&str), FALSE);
1861
0
}
1862
static gboolean
1863
fu_struct_amd_afc_ifr_guid_parse_internal(FuStructAmdAfcIfrGuid *st, GError **error)
1864
146
{
1865
146
    if (g_log_get_debug_enabled()) {
1866
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_guid_to_string(st);
1867
0
        g_debug("%s", str);
1868
0
    }
1869
146
    return TRUE;
1870
146
}
1871
1872
/**
1873
 * fu_struct_amd_afc_ifr_guid_parse: (skip):
1874
 **/
1875
static FuStructAmdAfcIfrGuid *
1876
fu_struct_amd_afc_ifr_guid_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
1877
147
{
1878
147
    g_autoptr(FuStructAmdAfcIfrGuid) st = fu_struct_amd_afc_ifr_guid_new_internal();
1879
147
    g_return_val_if_fail(buf != NULL, NULL);
1880
147
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
1881
147
    if (!fu_memchk_read(bufsz, offset, 18, error)) {
1882
1
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrGuid: ");
1883
1
        return NULL;
1884
1
    }
1885
146
    st->buf = g_byte_array_new();
1886
146
    g_byte_array_append(st->buf, buf + offset, 18);
1887
146
    if (!fu_struct_amd_afc_ifr_guid_parse_internal(st, error))
1888
0
        return NULL;
1889
146
    return g_steal_pointer(&st);
1890
146
}
1891
/**
1892
 * fu_struct_amd_afc_ifr_guid_parse_bytes: (skip):
1893
 **/
1894
FuStructAmdAfcIfrGuid *
1895
fu_struct_amd_afc_ifr_guid_parse_bytes(GBytes *blob, gsize offset, GError **error)
1896
147
{
1897
147
    gsize bufsz = 0;
1898
147
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
1899
147
    if (buf == NULL)
1900
0
        return NULL;
1901
147
    return fu_struct_amd_afc_ifr_guid_parse(buf, bufsz, offset, error);
1902
147
}
1903
/**
1904
 * fu_struct_amd_afc_ifr_option_ref: (skip):
1905
 **/
1906
FuStructAmdAfcIfrOption *
1907
fu_struct_amd_afc_ifr_option_ref(FuStructAmdAfcIfrOption *st)
1908
0
{
1909
0
    g_return_val_if_fail(st != NULL, NULL);
1910
0
    st->refcount++;
1911
0
    return st;
1912
0
}
1913
/**
1914
 * fu_struct_amd_afc_ifr_option_unref: (skip):
1915
 **/
1916
void
1917
fu_struct_amd_afc_ifr_option_unref(FuStructAmdAfcIfrOption *st)
1918
27.6k
{
1919
27.6k
    g_return_if_fail(st != NULL);
1920
27.6k
    if (st->refcount == 0) {
1921
0
        g_critical("FuStructAmdAfcIfrOption refcount already zero");
1922
0
        return;
1923
0
    }
1924
27.6k
    if (--st->refcount > 0)
1925
0
        return;
1926
27.6k
    if (st->buf != NULL)
1927
27.6k
        g_byte_array_unref(st->buf);
1928
27.6k
    g_free(st);
1929
27.6k
}
1930
/**
1931
 * fu_struct_amd_afc_ifr_option_new_internal: (skip):
1932
 **/
1933
static FuStructAmdAfcIfrOption *
1934
fu_struct_amd_afc_ifr_option_new_internal(void)
1935
27.6k
{
1936
27.6k
    FuStructAmdAfcIfrOption *st = g_new0(FuStructAmdAfcIfrOption, 1);
1937
27.6k
    st->refcount = 1;
1938
27.6k
    return st;
1939
27.6k
}
1940
1941
/* getters */
1942
/**
1943
 * fu_struct_amd_afc_ifr_option_get_opcode: (skip):
1944
 **/
1945
guint8
1946
fu_struct_amd_afc_ifr_option_get_opcode(const FuStructAmdAfcIfrOption *st)
1947
0
{
1948
0
    g_return_val_if_fail(st != NULL, 0x0);
1949
0
    return st->buf->data[0];
1950
0
}
1951
/**
1952
 * fu_struct_amd_afc_ifr_option_get_length_scope: (skip):
1953
 **/
1954
guint8
1955
fu_struct_amd_afc_ifr_option_get_length_scope(const FuStructAmdAfcIfrOption *st)
1956
0
{
1957
0
    g_return_val_if_fail(st != NULL, 0x0);
1958
0
    return st->buf->data[1];
1959
0
}
1960
/**
1961
 * fu_struct_amd_afc_ifr_option_get_string_id: (skip):
1962
 **/
1963
guint16
1964
fu_struct_amd_afc_ifr_option_get_string_id(const FuStructAmdAfcIfrOption *st)
1965
8.52k
{
1966
8.52k
    g_return_val_if_fail(st != NULL, 0x0);
1967
8.52k
    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
1968
8.52k
}
1969
/**
1970
 * fu_struct_amd_afc_ifr_option_get_flags: (skip):
1971
 **/
1972
guint8
1973
fu_struct_amd_afc_ifr_option_get_flags(const FuStructAmdAfcIfrOption *st)
1974
8.50k
{
1975
8.50k
    g_return_val_if_fail(st != NULL, 0x0);
1976
8.50k
    return st->buf->data[4];
1977
8.50k
}
1978
/**
1979
 * fu_struct_amd_afc_ifr_option_get_value_type: (skip):
1980
 **/
1981
guint8
1982
fu_struct_amd_afc_ifr_option_get_value_type(const FuStructAmdAfcIfrOption *st)
1983
27.6k
{
1984
27.6k
    g_return_val_if_fail(st != NULL, 0x0);
1985
27.6k
    return st->buf->data[5];
1986
27.6k
}
1987
1988
/* setters */
1989
/**
1990
 * fu_struct_amd_afc_ifr_option_to_string: (skip):
1991
 **/
1992
static gchar *
1993
fu_struct_amd_afc_ifr_option_to_string(const FuStructAmdAfcIfrOption *st)
1994
0
{
1995
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrOption:\n");
1996
0
    g_return_val_if_fail(st != NULL, NULL);
1997
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
1998
0
                           (guint) fu_struct_amd_afc_ifr_option_get_opcode(st));
1999
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
2000
0
                           (guint) fu_struct_amd_afc_ifr_option_get_length_scope(st));
2001
0
    g_string_append_printf(str, "  string_id: 0x%x\n",
2002
0
                           (guint) fu_struct_amd_afc_ifr_option_get_string_id(st));
2003
0
    g_string_append_printf(str, "  flags: 0x%x\n",
2004
0
                           (guint) fu_struct_amd_afc_ifr_option_get_flags(st));
2005
0
    g_string_append_printf(str, "  value_type: 0x%x\n",
2006
0
                           (guint) fu_struct_amd_afc_ifr_option_get_value_type(st));
2007
0
    if (str->len > 0)
2008
0
        g_string_set_size(str, str->len - 1);
2009
0
    return g_string_free(g_steal_pointer(&str), FALSE);
2010
0
}
2011
static gboolean
2012
fu_struct_amd_afc_ifr_option_parse_internal(FuStructAmdAfcIfrOption *st, GError **error)
2013
27.6k
{
2014
27.6k
    if (g_log_get_debug_enabled()) {
2015
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_option_to_string(st);
2016
0
        g_debug("%s", str);
2017
0
    }
2018
27.6k
    return TRUE;
2019
27.6k
}
2020
2021
/**
2022
 * fu_struct_amd_afc_ifr_option_parse: (skip):
2023
 **/
2024
static FuStructAmdAfcIfrOption *
2025
fu_struct_amd_afc_ifr_option_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
2026
27.6k
{
2027
27.6k
    g_autoptr(FuStructAmdAfcIfrOption) st = fu_struct_amd_afc_ifr_option_new_internal();
2028
27.6k
    g_return_val_if_fail(buf != NULL, NULL);
2029
27.6k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
2030
27.6k
    if (!fu_memchk_read(bufsz, offset, 6, error)) {
2031
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrOption: ");
2032
0
        return NULL;
2033
0
    }
2034
27.6k
    st->buf = g_byte_array_new();
2035
27.6k
    g_byte_array_append(st->buf, buf + offset, 6);
2036
27.6k
    if (!fu_struct_amd_afc_ifr_option_parse_internal(st, error))
2037
0
        return NULL;
2038
27.6k
    return g_steal_pointer(&st);
2039
27.6k
}
2040
/**
2041
 * fu_struct_amd_afc_ifr_option_parse_bytes: (skip):
2042
 **/
2043
FuStructAmdAfcIfrOption *
2044
fu_struct_amd_afc_ifr_option_parse_bytes(GBytes *blob, gsize offset, GError **error)
2045
27.6k
{
2046
27.6k
    gsize bufsz = 0;
2047
27.6k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
2048
27.6k
    if (buf == NULL)
2049
0
        return NULL;
2050
27.6k
    return fu_struct_amd_afc_ifr_option_parse(buf, bufsz, offset, error);
2051
27.6k
}
2052
/**
2053
 * fu_struct_amd_afc_ifr_default_ref: (skip):
2054
 **/
2055
FuStructAmdAfcIfrDefault *
2056
fu_struct_amd_afc_ifr_default_ref(FuStructAmdAfcIfrDefault *st)
2057
0
{
2058
0
    g_return_val_if_fail(st != NULL, NULL);
2059
0
    st->refcount++;
2060
0
    return st;
2061
0
}
2062
/**
2063
 * fu_struct_amd_afc_ifr_default_unref: (skip):
2064
 **/
2065
void
2066
fu_struct_amd_afc_ifr_default_unref(FuStructAmdAfcIfrDefault *st)
2067
1.57k
{
2068
1.57k
    g_return_if_fail(st != NULL);
2069
1.57k
    if (st->refcount == 0) {
2070
0
        g_critical("FuStructAmdAfcIfrDefault refcount already zero");
2071
0
        return;
2072
0
    }
2073
1.57k
    if (--st->refcount > 0)
2074
0
        return;
2075
1.57k
    if (st->buf != NULL)
2076
1.57k
        g_byte_array_unref(st->buf);
2077
1.57k
    g_free(st);
2078
1.57k
}
2079
/**
2080
 * fu_struct_amd_afc_ifr_default_new_internal: (skip):
2081
 **/
2082
static FuStructAmdAfcIfrDefault *
2083
fu_struct_amd_afc_ifr_default_new_internal(void)
2084
1.57k
{
2085
1.57k
    FuStructAmdAfcIfrDefault *st = g_new0(FuStructAmdAfcIfrDefault, 1);
2086
1.57k
    st->refcount = 1;
2087
1.57k
    return st;
2088
1.57k
}
2089
2090
/* getters */
2091
/**
2092
 * fu_struct_amd_afc_ifr_default_get_opcode: (skip):
2093
 **/
2094
guint8
2095
fu_struct_amd_afc_ifr_default_get_opcode(const FuStructAmdAfcIfrDefault *st)
2096
0
{
2097
0
    g_return_val_if_fail(st != NULL, 0x0);
2098
0
    return st->buf->data[0];
2099
0
}
2100
/**
2101
 * fu_struct_amd_afc_ifr_default_get_length_scope: (skip):
2102
 **/
2103
guint8
2104
fu_struct_amd_afc_ifr_default_get_length_scope(const FuStructAmdAfcIfrDefault *st)
2105
0
{
2106
0
    g_return_val_if_fail(st != NULL, 0x0);
2107
0
    return st->buf->data[1];
2108
0
}
2109
/**
2110
 * fu_struct_amd_afc_ifr_default_get_id: (skip):
2111
 **/
2112
guint16
2113
fu_struct_amd_afc_ifr_default_get_id(const FuStructAmdAfcIfrDefault *st)
2114
1.57k
{
2115
1.57k
    g_return_val_if_fail(st != NULL, 0x0);
2116
1.57k
    return fu_memread_uint16(st->buf->data + 2, G_LITTLE_ENDIAN);
2117
1.57k
}
2118
/**
2119
 * fu_struct_amd_afc_ifr_default_get_value_type: (skip):
2120
 **/
2121
guint8
2122
fu_struct_amd_afc_ifr_default_get_value_type(const FuStructAmdAfcIfrDefault *st)
2123
1.57k
{
2124
1.57k
    g_return_val_if_fail(st != NULL, 0x0);
2125
1.57k
    return st->buf->data[4];
2126
1.57k
}
2127
2128
/* setters */
2129
/**
2130
 * fu_struct_amd_afc_ifr_default_to_string: (skip):
2131
 **/
2132
static gchar *
2133
fu_struct_amd_afc_ifr_default_to_string(const FuStructAmdAfcIfrDefault *st)
2134
0
{
2135
0
    g_autoptr(GString) str = g_string_new("FuStructAmdAfcIfrDefault:\n");
2136
0
    g_return_val_if_fail(st != NULL, NULL);
2137
0
    g_string_append_printf(str, "  opcode: 0x%x\n",
2138
0
                           (guint) fu_struct_amd_afc_ifr_default_get_opcode(st));
2139
0
    g_string_append_printf(str, "  length_scope: 0x%x\n",
2140
0
                           (guint) fu_struct_amd_afc_ifr_default_get_length_scope(st));
2141
0
    g_string_append_printf(str, "  id: 0x%x\n",
2142
0
                           (guint) fu_struct_amd_afc_ifr_default_get_id(st));
2143
0
    g_string_append_printf(str, "  value_type: 0x%x\n",
2144
0
                           (guint) fu_struct_amd_afc_ifr_default_get_value_type(st));
2145
0
    if (str->len > 0)
2146
0
        g_string_set_size(str, str->len - 1);
2147
0
    return g_string_free(g_steal_pointer(&str), FALSE);
2148
0
}
2149
static gboolean
2150
fu_struct_amd_afc_ifr_default_parse_internal(FuStructAmdAfcIfrDefault *st, GError **error)
2151
1.57k
{
2152
1.57k
    if (g_log_get_debug_enabled()) {
2153
0
        g_autofree gchar *str = fu_struct_amd_afc_ifr_default_to_string(st);
2154
0
        g_debug("%s", str);
2155
0
    }
2156
1.57k
    return TRUE;
2157
1.57k
}
2158
2159
/**
2160
 * fu_struct_amd_afc_ifr_default_parse: (skip):
2161
 **/
2162
static FuStructAmdAfcIfrDefault *
2163
fu_struct_amd_afc_ifr_default_parse(const guint8 *buf, gsize bufsz, gsize offset, GError **error)
2164
1.57k
{
2165
1.57k
    g_autoptr(FuStructAmdAfcIfrDefault) st = fu_struct_amd_afc_ifr_default_new_internal();
2166
1.57k
    g_return_val_if_fail(buf != NULL, NULL);
2167
1.57k
    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
2168
1.57k
    if (!fu_memchk_read(bufsz, offset, 5, error)) {
2169
0
        g_prefix_error_literal(error, "invalid struct FuStructAmdAfcIfrDefault: ");
2170
0
        return NULL;
2171
0
    }
2172
1.57k
    st->buf = g_byte_array_new();
2173
1.57k
    g_byte_array_append(st->buf, buf + offset, 5);
2174
1.57k
    if (!fu_struct_amd_afc_ifr_default_parse_internal(st, error))
2175
0
        return NULL;
2176
1.57k
    return g_steal_pointer(&st);
2177
1.57k
}
2178
/**
2179
 * fu_struct_amd_afc_ifr_default_parse_bytes: (skip):
2180
 **/
2181
FuStructAmdAfcIfrDefault *
2182
fu_struct_amd_afc_ifr_default_parse_bytes(GBytes *blob, gsize offset, GError **error)
2183
1.57k
{
2184
1.57k
    gsize bufsz = 0;
2185
1.57k
    const guint8 *buf = fu_bytes_get_data_safe(blob, &bufsz, error);
2186
1.57k
    if (buf == NULL)
2187
0
        return NULL;
2188
1.57k
    return fu_struct_amd_afc_ifr_default_parse(buf, bufsz, offset, error);
2189
1.57k
}