[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH FYI 11/13] hw/acpi: add AML generator function for A
From: |
Laszlo Ersek |
Subject: |
[Qemu-devel] [PATCH FYI 11/13] hw/acpi: add AML generator function for AccessAs() |
Date: |
Sun, 13 Sep 2015 14:43:45 +0200 |
The AccessAs(AccessType) macro can be used inside the Field() operator in
ASL, for diverging from the Field's default access type, for the fields
that follow AccessAs(). The new helper function allows us to generate the
matching AML.
The AccessAttribute parameter of the macro (described in the spec) is not
exposed because it is reserved for all spaces except SMBus device space,
and we don't use that.
Cc: Paolo Bonzini <address@hidden>
Cc: Gal Hammer <address@hidden>
Cc: Igor Mammedov <address@hidden>
Cc: "Michael S. Tsirkin" <address@hidden>
Signed-off-by: Laszlo Ersek <address@hidden>
---
include/hw/acpi/aml-build.h | 1 +
hw/acpi/aml-build.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
index dc4d215..32e49b3 100644
--- a/include/hw/acpi/aml-build.h
+++ b/include/hw/acpi/aml-build.h
@@ -230,6 +230,7 @@ Aml *aml_data_table_region(const char *name, Aml *sig, Aml
*oem_id,
Aml *aml_irq_no_flags(uint8_t irq);
Aml *aml_named_field(const char *name, unsigned length);
Aml *aml_reserved_field(unsigned length);
+Aml *aml_access_field(AmlAccessType type);
Aml *aml_local(int num);
Aml *aml_string(const char *name_format, ...) GCC_FMT_ATTR(1, 2);
Aml *aml_lnot(Aml *arg);
diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index 2dd2f33..5aeb289 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -821,6 +821,17 @@ Aml *aml_reserved_field(unsigned length)
return var;
}
+/* ACPI 1.0b: 16.2.5.2 Named Objects Encoding: AccessField */
+Aml *aml_access_field(AmlAccessType type)
+{
+ Aml *var = aml_alloc();
+ /* AccessField := 0x01 AccessType AccessAttrib */
+ build_append_byte(var->buf, 0x01);
+ build_append_byte(var->buf, type);
+ build_append_byte(var->buf, 0x00 /* reserved outside SMBus dev space */);
+ return var;
+}
+
/* ACPI 1.0b: 16.2.5.2 Named Objects Encoding: DefField */
Aml *aml_field(const char *name, AmlAccessType type, AmlUpdateRule rule)
{
--
1.8.3.1
- [Qemu-devel] [PATCH FYI 01/13] docs: describe QEMU's VMGenID design, (continued)
- [Qemu-devel] [PATCH FYI 01/13] docs: describe QEMU's VMGenID design, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 02/13] hw/acpi: add i386 callbacks for injecting GPE 04 when the VMGENID changes, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 03/13] hw/acpi: rename "AcpiBuildTables.table_data" to "main_blob", Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 04/13] hw/acpi: allow RSDT entries to be relocated to various fw_cfg blobs, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 05/13] hw/acpi: add more flexible acpi_add_table() and build_header() variants, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 06/13] hw/acpi: introduce ACPI_BUILD_QEMUPARAM_FILE, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 07/13] hw/acpi: introduce the AcpiQemuParamTable structure, Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 08/13] hw/i386: build UEFI ACPI Data Table for VMGENID in the dedicated blob (WIP), Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 10/13] hw/acpi: add AML generator function for DataTableRegion(), Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 09/13] hw/acpi: expose more parameters for aml_method(), Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 11/13] hw/acpi: add AML generator function for AccessAs(),
Laszlo Ersek <=
- [Qemu-devel] [PATCH FYI 12/13] hw/acpi: add AML generator function for CreateQWordField(), Laszlo Ersek, 2015/09/13
- [Qemu-devel] [PATCH FYI 13/13] hw/i386: generate AML for the VMGENID device (WIP), Laszlo Ersek, 2015/09/13