diff options
author | Naresh G Solanki <naresh.solanki@intel.com> | 2016-11-15 10:13:15 +0530 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-11-24 05:01:37 +0100 |
commit | ab77cd4785ce24715c33fd4ec8562cad3ea5bffc (patch) | |
tree | 612d8d3ffb2325cdea0d1a2bb9bc8613713220dd /src/arch/x86/include | |
parent | c36fa6433e04f9a6fcb51921de743625e5068ce7 (diff) |
arch/x86/acpigen: Write DSM method with multiple UUID's
Enable generic way of writing DSM method which can write acpi table for
multiple UUID's.
Change-Id: Ic1fbdc0647e8fdc50ffa407887feb19a63cb48e4
Signed-off-by: Naresh G Solanki <naresh.solanki@intel.com>
Reviewed-on: https://review.coreboot.org/17424
Tested-by: build bot (Jenkins)
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/arch/x86/include')
-rw-r--r-- | src/arch/x86/include/arch/acpigen.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h index dcd8fb7a64..f76d85e9bc 100644 --- a/src/arch/x86/include/arch/acpigen.h +++ b/src/arch/x86/include/arch/acpigen.h @@ -144,6 +144,20 @@ struct opregion { unsigned long regionlen; }; +#define DSM_UUID(DSM_UUID, DSM_CALLBACKS, DSM_COUNT, DSM_ARG) \ + { .uuid = DSM_UUID, \ + .callbacks = DSM_CALLBACKS, \ + .count = DSM_COUNT, \ + .arg = DSM_ARG, \ + } + +struct dsm_uuid { + const char *uuid; + void (**callbacks)(void *); + size_t count; + void *arg; +}; + void acpigen_write_return_integer(uint64_t arg); void acpigen_write_return_string(const char *arg); void acpigen_write_len_f(void); @@ -235,8 +249,9 @@ void acpigen_write_return_byte(uint8_t arg); * argument to pass into the callbacks. Callbacks should ensure that Local0 and * Local1 are left untouched. Use of Local2-Local7 is permitted in callbacks. */ -void acpigen_write_dsm(const char *uuid, void (*callbacks[])(void *), +void acpigen_write_dsm(const char *uuid, void (**callbacks)(void *), size_t count, void *arg); +void acpigen_write_dsm_uuid_arr(struct dsm_uuid *ids, size_t count); /* * Generate ACPI AML code for OperationRegion * This function takes input region name, region space, region offset & region |