@@ -565,6 +565,16 @@ AcpiAml acpi_named_field(const char *name, unsigned length)
return var;
}
+/* ACPI 5.0: 20.2.5.2 Named Objects Encoding: ReservedField */
+AcpiAml acpi_reserved_field(unsigned length)
+{
+ AcpiAml var = aml_allocate_internal(0, NON_BLOCK);
+ /* ReservedField := 0x00 PkgLength */
+ build_append_byte(var.buf, 0x00);
+ build_append_pkg_length(var.buf, length, false);
+ return var;
+}
+
/* ACPI 5.0: 20.2.5.2 Named Objects Encoding: DefField */
AcpiAml acpi_field(const char *name, acpiFieldFlags flags)
{
@@ -25,7 +25,12 @@ typedef enum {
} acpiIODecode;
typedef enum {
+ acpi_any_acc = 0,
acpi_byte_acc = 1,
+ acpi_word_acc = 2,
+ acpi_dword_acc = 3,
+ acpi_qword_acc = 4,
+ acpi_buffer_acc = 5,
} acpiFieldFlags;
typedef enum {
@@ -58,6 +63,7 @@ AcpiAml acpi_io(acpiIODecode dec, uint16_t min_base, uint16_t max_base,
AcpiAml acpi_operation_region(const char *name, acpiRegionSpace rs,
uint32_t offset, uint32_t len);
AcpiAml acpi_named_field(const char *name, unsigned length);
+AcpiAml acpi_reserved_field(unsigned length);
AcpiAml GCC_FMT_ATTR(1, 2) acpi_string(const char *name_format, ...);
AcpiAml acpi_local0(void);
AcpiAml acpi_equal(AcpiAml arg1, AcpiAml arg2);
Signed-off-by: Igor Mammedov <imammedo@redhat.com> --- hw/acpi/acpi_gen_utils.c | 10 ++++++++++ include/hw/acpi/acpi_gen_utils.h | 6 ++++++ 2 files changed, 16 insertions(+)