aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi
diff options
context:
space:
mode:
authorLin Ming <ming.m.lin@intel.com>2008-04-10 11:06:38 -0400
committerLen Brown <len.brown@intel.com>2008-04-22 14:29:24 -0400
commit3e08e2d2d6efb256aa035e300deb059bb333b6db (patch)
tree33a83f051ad4370f486f4e6d3e19615d5fc11b8b /include/acpi
parent698c0a0c299bd9389522e14dae1aff02070bac25 (diff)
ACPICA: New interfaces for table event handlers
Designed and implemented new external interfaces to install and remove handlers for ACPI table-related events. Current events that are defined are LOAD and UNLOAD. These interfaces allow the host to track ACPI tables as they are dynamically loaded and unloaded. See AcpiInstallTableHandler and AcpiRemoveTableHandler. Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/acdisasm.h4
-rw-r--r--include/acpi/acglobal.h2
-rw-r--r--include/acpi/acpixf.h5
-rw-r--r--include/acpi/actypes.h11
4 files changed, 20 insertions, 2 deletions
diff --git a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h
index 75c354f7a024..67d152e7fa44 100644
--- a/include/acpi/acdisasm.h
+++ b/include/acpi/acdisasm.h
@@ -104,12 +104,12 @@ typedef const struct acpi_dmtable_info {
104#define ACPI_DMT_SIG 27 104#define ACPI_DMT_SIG 27
105 105
106typedef 106typedef
107void (*ACPI_TABLE_HANDLER) (struct acpi_table_header * table); 107void (*acpi_dmtable_handler) (struct acpi_table_header * table);
108 108
109struct acpi_dmtable_data { 109struct acpi_dmtable_data {
110 char *signature; 110 char *signature;
111 struct acpi_dmtable_info *table_info; 111 struct acpi_dmtable_info *table_info;
112 ACPI_TABLE_HANDLER table_handler; 112 acpi_dmtable_handler table_handler;
113 char *name; 113 char *name;
114}; 114};
115 115
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h
index 44e718ee1579..862468616217 100644
--- a/include/acpi/acglobal.h
+++ b/include/acpi/acglobal.h
@@ -217,6 +217,8 @@ ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_device_notify;
217ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify; 217ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify;
218ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler; 218ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler;
219ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; 219ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler;
220ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler;
221ACPI_EXTERN void *acpi_gbl_table_handler_context;
220ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk; 222ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk;
221 223
222/* Owner ID support */ 224/* Owner ID support */
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
index d970f7f99549..c92acda1a77f 100644
--- a/include/acpi/acpixf.h
+++ b/include/acpi/acpixf.h
@@ -119,6 +119,11 @@ acpi_status
119acpi_get_table_by_index(acpi_native_uint table_index, 119acpi_get_table_by_index(acpi_native_uint table_index,
120 struct acpi_table_header **out_table); 120 struct acpi_table_header **out_table);
121 121
122acpi_status
123acpi_install_table_handler(acpi_tbl_handler handler, void *context);
124
125acpi_status acpi_remove_table_handler(acpi_tbl_handler handler);
126
122/* 127/*
123 * Namespace and name interfaces 128 * Namespace and name interfaces
124 */ 129 */
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 6182b57590ef..766178c6cc81 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -730,6 +730,12 @@ struct acpi_system_info {
730 u32 debug_layer; 730 u32 debug_layer;
731}; 731};
732 732
733/* Table Event Types */
734
735#define ACPI_TABLE_EVENT_LOAD 0x0
736#define ACPI_TABLE_EVENT_UNLOAD 0x1
737#define ACPI_NUM_TABLE_EVENTS 2
738
733/* 739/*
734 * Types specific to the OS service interfaces 740 * Types specific to the OS service interfaces
735 */ 741 */
@@ -759,6 +765,11 @@ acpi_status(*acpi_exception_handler) (acpi_status aml_status,
759 u16 opcode, 765 u16 opcode,
760 u32 aml_offset, void *context); 766 u32 aml_offset, void *context);
761 767
768/* Table Event handler (Load, load_table etc) and types */
769
770typedef
771acpi_status(*acpi_tbl_handler) (u32 event, void *table, void *context);
772
762/* Address Spaces (For Operation Regions) */ 773/* Address Spaces (For Operation Regions) */
763 774
764typedef 775typedef