Author: mmlr Date: 2011-05-11 10:22:22 +0200 (Wed, 11 May 2011) New Revision: 41429 Changeset: https://dev.haiku-os.org/changeset/41429 Modified: haiku/trunk/headers/os/drivers/ACPI.h haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_module.c haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h Log: Provide a function to gain ACPI table access. Modified: haiku/trunk/headers/os/drivers/ACPI.h =================================================================== --- haiku/trunk/headers/os/drivers/ACPI.h 2011-05-11 02:50:36 UTC (rev 41428) +++ haiku/trunk/headers/os/drivers/ACPI.h 2011-05-11 08:22:22 UTC (rev 41429) @@ -234,7 +234,7 @@ status_t (*evaluate_method)(acpi_handle handle, const char *method, acpi_objects *args, acpi_data *returnValue); - /* Resource info */ + /* Resource Management */ status_t (*get_irq_routing_table)(acpi_handle busDeviceHandle, acpi_data *retBuffer); @@ -251,6 +251,10 @@ size_t size); status_t (*enter_sleep_state)(uint8 state); status_t (*reboot)(void); + + /* Table Access */ + status_t (*get_table)(char *signature, uint32 instance, + void **tableHeader); }; Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c 2011-05-11 02:50:36 UTC (rev 41428) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_busman.c 2011-05-11 08:22:22 UTC (rev 41429) @@ -713,6 +713,14 @@ } +status_t +get_table(char* signature, uint32 instance, void** tableHeader) +{ + return AcpiGetTable(signature, instance, (ACPI_TABLE_HEADER**)tableHeader) + == AE_OK ? B_OK : B_ERROR; +} + + struct acpi_module_info gACPIModule = { { B_ACPI_MODULE_NAME, @@ -752,5 +760,6 @@ set_current_resources, prepare_sleep_state, enter_sleep_state, - reboot + reboot, + get_table }; Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_module.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_module.c 2011-05-11 02:50:36 UTC (rev 41428) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_module.c 2011-05-11 08:22:22 UTC (rev 41429) @@ -219,7 +219,8 @@ set_current_resources, prepare_sleep_state, enter_sleep_state, - reboot + reboot, + get_table }; Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h 2011-05-11 02:50:36 UTC (rev 41428) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/acpi_priv.h 2011-05-11 08:22:22 UTC (rev 41429) @@ -134,6 +134,10 @@ size_t size); status_t (*enter_sleep_state)(uint8 state); status_t (*reboot)(void); + + /* Table Access */ + status_t (*get_table)(char *signature, uint32 instance, + void **tableHeader); } acpi_root_info; @@ -211,6 +215,8 @@ status_t reboot(void); +status_t get_table(char* signature, uint32 instance, void** tableHeader); + __END_DECLS