aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi/acpiosxf.h
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-05-12 17:12:00 -0400
committerLen Brown <len.brown@intel.com>2006-06-14 02:34:48 -0400
commit958dd242b691f64ab4632b4903dbb1e16fee8269 (patch)
treeddf4932fb4e3023dd0d1914571f17f2e3b03978d /include/acpi/acpiosxf.h
parentb229cf92eee616c7cb5ad8cdb35a19b119f00bc8 (diff)
ACPI: ACPICA 20060512
Replaced the acpi_os_queue_for_execution() with a new interface named acpi_os_execute(). The major difference is that the new interface does not have a Priority parameter, this appeared to be useless and has been replaced by a Type parameter. The Type tells the OS what type of execution is being requested, such as global lock handler, notify handler, GPE handler, etc. This allows the host to queue and execute the request as appropriate for the request type, possibly using different work queues and different priorities for the various request types. This enables fixes for multithreading deadlock problems such as http://bugzilla.kernel.org/show_bug.cgi?id=5534 (Alexey Starikovskiy and Bob Moore) Fixed a possible memory leak associated with the support for the so-called "implicit return" ACPI extension. Reported by FreeBSD (Fiodor Suietov) http://bugzilla.kernel.org/show_bug.cgi?id=6514 Fixed a problem with the Load() operator where a table load from an operation region could overwrite an internal table buffer by up to 7 bytes and cause alignment faults on IPF systems. (With assistance from Luming Yu) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi/acpiosxf.h')
-rw-r--r--include/acpi/acpiosxf.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
index a5264fac696e..982e7ea177e3 100644
--- a/include/acpi/acpiosxf.h
+++ b/include/acpi/acpiosxf.h
@@ -50,12 +50,17 @@
50#include "platform/acenv.h" 50#include "platform/acenv.h"
51#include "actypes.h" 51#include "actypes.h"
52 52
53/* Priorities for acpi_os_queue_for_execution */ 53/* Types for acpi_os_execute */
54 54
55#define OSD_PRIORITY_GPE 1 55typedef enum {
56#define OSD_PRIORITY_HIGH 2 56 OSL_GLOBAL_LOCK_HANDLER,
57#define OSD_PRIORITY_MED 3 57 OSL_NOTIFY_HANDLER,
58#define OSD_PRIORITY_LO 4 58 OSL_GPE_HANDLER,
59 OSL_DEBUGGER_THREAD,
60 OSL_EC_POLL_HANDLER,
61 OSL_EC_BURST_HANDLER,
62
63} acpi_execute_type;
59 64
60#define ACPI_NO_UNIT_LIMIT ((u32) -1) 65#define ACPI_NO_UNIT_LIMIT ((u32) -1)
61#define ACPI_MUTEX_SEM 1 66#define ACPI_MUTEX_SEM 1
@@ -164,8 +169,8 @@ acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler service_routine);
164acpi_thread_id acpi_os_get_thread_id(void); 169acpi_thread_id acpi_os_get_thread_id(void);
165 170
166acpi_status 171acpi_status
167acpi_os_queue_for_execution(u32 priority, 172acpi_os_execute(acpi_execute_type type,
168 acpi_osd_exec_callback function, void *context); 173 acpi_osd_exec_callback function, void *context);
169 174
170void acpi_os_wait_events_complete(void *context); 175void acpi_os_wait_events_complete(void *context);
171 176