summaryrefslogtreecommitdiff
path: root/src/include/device
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-08-30 19:28:05 +0200
committerVladimir Serbinenko <phcoder@gmail.com>2014-09-05 22:53:26 +0200
commit2d7bd8a6ebf6844b0cdef80eaaef69f39d08f076 (patch)
tree25f26fae4b5518cab0c4b63fe7e7ccc3837054cb /src/include/device
parenta2a906e47a87acc3acdca0ee2790ff96409b9b46 (diff)
downloadcoreboot-2d7bd8a6ebf6844b0cdef80eaaef69f39d08f076.tar.xz
Implement ACPI in a per device way
This approach avoids having same basic tables 150-lines mantra over 100 times in codebase. Change-Id: I76fb2fbcb9ca0654f2e5fd5d90bd62392165777c Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/6801 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Aaron Durbin <adurbin@google.com>
Diffstat (limited to 'src/include/device')
-rw-r--r--src/include/device/device.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/include/device/device.h b/src/include/device/device.h
index 19b5ea071e..256afd4880 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -40,6 +40,7 @@ struct chip_operations {
struct bus;
struct smbios_type11;
+struct acpi_rsdp;
struct device_operations {
void (*read_resources)(device_t dev);
@@ -56,6 +57,11 @@ struct device_operations {
int (*get_smbios_data)(device_t dev, int *handle, unsigned long *current);
void (*get_smbios_strings)(device_t dev, struct smbios_type11 *t);
#endif
+#if IS_ENABLED(CONFIG_GENERATE_ACPI_TABLES) && IS_ENABLED(CONFIG_PER_DEVICE_ACPI_TABLES)
+ unsigned long (*write_acpi_tables)(unsigned long start, struct acpi_rsdp *rsdp);
+ unsigned long (*acpi_fill_ssdt_generator)(unsigned long current,
+ const char *oem_table_id);
+#endif
const struct pci_operations *ops_pci;
const struct smbus_bus_operations *ops_smbus_bus;
const struct pci_bus_operations * (*ops_pci_bus)(device_t dev);