diff options
author | Lin Ming <ming.m.lin@intel.com> | 2008-04-10 11:06:38 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 14:29:24 -0400 |
commit | 3e08e2d2d6efb256aa035e300deb059bb333b6db (patch) | |
tree | 33a83f051ad4370f486f4e6d3e19615d5fc11b8b /include/acpi | |
parent | 698c0a0c299bd9389522e14dae1aff02070bac25 (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.h | 4 | ||||
-rw-r--r-- | include/acpi/acglobal.h | 2 | ||||
-rw-r--r-- | include/acpi/acpixf.h | 5 | ||||
-rw-r--r-- | include/acpi/actypes.h | 11 |
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 | ||
106 | typedef | 106 | typedef |
107 | void (*ACPI_TABLE_HANDLER) (struct acpi_table_header * table); | 107 | void (*acpi_dmtable_handler) (struct acpi_table_header * table); |
108 | 108 | ||
109 | struct acpi_dmtable_data { | 109 | struct 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; | |||
217 | ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify; | 217 | ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify; |
218 | ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler; | 218 | ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler; |
219 | ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; | 219 | ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; |
220 | ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler; | ||
221 | ACPI_EXTERN void *acpi_gbl_table_handler_context; | ||
220 | ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk; | 222 | ACPI_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 | |||
119 | acpi_get_table_by_index(acpi_native_uint table_index, | 119 | acpi_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 | ||
122 | acpi_status | ||
123 | acpi_install_table_handler(acpi_tbl_handler handler, void *context); | ||
124 | |||
125 | acpi_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 | |||
770 | typedef | ||
771 | acpi_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 | ||
764 | typedef | 775 | typedef |