/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <fu-input-stream.h>
/**
 * FuAcpiFadtPmProfile:
 *
 * ACPI Fixed ACPI Description Table (FADT) Preferred_PM_Profile values.
 */
typedef enum {
    /**
     * FU_ACPI_FADT_PM_PROFILE_UNSPECIFIED:
     */
    FU_ACPI_FADT_PM_PROFILE_UNSPECIFIED,
    /**
     * FU_ACPI_FADT_PM_PROFILE_DESKTOP:
     */
    FU_ACPI_FADT_PM_PROFILE_DESKTOP,
    /**
     * FU_ACPI_FADT_PM_PROFILE_MOBILE:
     */
    FU_ACPI_FADT_PM_PROFILE_MOBILE,
    /**
     * FU_ACPI_FADT_PM_PROFILE_WORKSTATION:
     */
    FU_ACPI_FADT_PM_PROFILE_WORKSTATION,
    /**
     * FU_ACPI_FADT_PM_PROFILE_ENTERPRISE_SERVER:
     */
    FU_ACPI_FADT_PM_PROFILE_ENTERPRISE_SERVER,
    /**
     * FU_ACPI_FADT_PM_PROFILE_SOHO_SERVER:
     */
    FU_ACPI_FADT_PM_PROFILE_SOHO_SERVER,
    /**
     * FU_ACPI_FADT_PM_PROFILE_APPLIANCE_PC:
     */
    FU_ACPI_FADT_PM_PROFILE_APPLIANCE_PC,
    /**
     * FU_ACPI_FADT_PM_PROFILE_PERFORMANCE_SERVER:
     */
    FU_ACPI_FADT_PM_PROFILE_PERFORMANCE_SERVER,
    /**
     * FU_ACPI_FADT_PM_PROFILE_TABLET:
     */
    FU_ACPI_FADT_PM_PROFILE_TABLET,
}  FuAcpiFadtPmProfile;
#define FU_ACPI_FADT_PM_PROFILE_LAST 9
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructAcpiTable;

FuStructAcpiTable *fu_struct_acpi_table_ref(FuStructAcpiTable *st) G_GNUC_NON_NULL(1);
void fu_struct_acpi_table_unref(FuStructAcpiTable *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructAcpiTable, fu_struct_acpi_table_unref)
FuStructAcpiTable *fu_struct_acpi_table_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructAcpiTable *fu_struct_acpi_table_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_acpi_table_get_signature(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_acpi_table_get_length(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_acpi_table_get_revision(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint8 fu_struct_acpi_table_get_checksum(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_acpi_table_get_oem_id(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gchar *fu_struct_acpi_table_get_oem_table_id(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_acpi_table_get_oem_revision(const FuStructAcpiTable *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_acpi_table_set_signature(FuStructAcpiTable *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_acpi_table_set_length(FuStructAcpiTable *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_acpi_table_set_revision(FuStructAcpiTable *st, guint8 value) G_GNUC_NON_NULL(1);
void fu_struct_acpi_table_set_checksum(FuStructAcpiTable *st, guint8 value) G_GNUC_NON_NULL(1);
gboolean fu_struct_acpi_table_set_oem_id(FuStructAcpiTable *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
gboolean fu_struct_acpi_table_set_oem_table_id(FuStructAcpiTable *st, const gchar *value, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_acpi_table_set_oem_revision(FuStructAcpiTable *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_ACPI_TABLE_OFFSET_SIGNATURE 0x0
#define FU_STRUCT_ACPI_TABLE_OFFSET_LENGTH 0x4
#define FU_STRUCT_ACPI_TABLE_OFFSET_REVISION 0x8
#define FU_STRUCT_ACPI_TABLE_OFFSET_CHECKSUM 0x9
#define FU_STRUCT_ACPI_TABLE_OFFSET_OEM_ID 0xA
#define FU_STRUCT_ACPI_TABLE_OFFSET_OEM_TABLE_ID 0x10
#define FU_STRUCT_ACPI_TABLE_OFFSET_OEM_REVISION 0x18
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ACPI_TABLE_SIZE_SIGNATURE 0x4
#define FU_STRUCT_ACPI_TABLE_N_ELEMENTS_SIGNATURE 4
#define FU_STRUCT_ACPI_TABLE_SIZE_OEM_ID 0x6
#define FU_STRUCT_ACPI_TABLE_N_ELEMENTS_OEM_ID 6
#define FU_STRUCT_ACPI_TABLE_SIZE_OEM_TABLE_ID 0x8
#define FU_STRUCT_ACPI_TABLE_N_ELEMENTS_OEM_TABLE_ID 8
#define FU_STRUCT_ACPI_TABLE_SIZE 0x24
#endif

#ifndef __GI_SCANNER__
#endif
