#include "platform/acenv.h"
#include "actypes.h"
-/* Types for acpi_os_execute */
+/* Priorities for acpi_os_queue_for_execution */
-typedef enum {
- OSL_GLOBAL_LOCK_HANDLER,
- OSL_NOTIFY_HANDLER,
- OSL_GPE_HANDLER,
- OSL_DEBUGGER_THREAD,
- OSL_EC_POLL_HANDLER,
- OSL_EC_BURST_HANDLER
-} acpi_execute_type;
+#define OSD_PRIORITY_GPE 1
+#define OSD_PRIORITY_HIGH 2
+#define OSD_PRIORITY_MED 3
+#define OSD_PRIORITY_LO 4
#define ACPI_NO_UNIT_LIMIT ((u32) -1)
#define ACPI_MUTEX_SEM 1
struct acpi_table_header **new_table);
/*
- * Spinlock primitives
- */
-acpi_status acpi_os_create_lock(acpi_spinlock * out_handle);
-
-void acpi_os_delete_lock(acpi_spinlock handle);
-
-acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle);
-
-void acpi_os_release_lock(acpi_spinlock handle, acpi_cpu_flags flags);
-
-/*
- * Semaphore primitives
+ * Synchronization primitives
*/
acpi_status
acpi_os_create_semaphore(u32 max_units,
- u32 initial_units, acpi_semaphore * out_handle);
+ u32 initial_units, acpi_handle * out_handle);
-acpi_status acpi_os_delete_semaphore(acpi_semaphore handle);
+acpi_status acpi_os_delete_semaphore(acpi_handle handle);
-acpi_status
-acpi_os_wait_semaphore(acpi_semaphore handle, u32 units, u16 timeout);
-
-acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units);
-
-/*
- * Mutex primitives
- */
-acpi_status acpi_os_create_mutex(acpi_mutex * out_handle);
+acpi_status acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 timeout);
-void acpi_os_delete_mutex(acpi_mutex handle);
+acpi_status acpi_os_signal_semaphore(acpi_handle handle, u32 units);
-acpi_status acpi_os_acquire_mutex(acpi_mutex handle, u16 timeout);
+acpi_status acpi_os_create_lock(acpi_handle * out_handle);
-void acpi_os_release_mutex(acpi_mutex handle);
+void acpi_os_delete_lock(acpi_handle handle);
-/* Temporary macros for Mutex* interfaces, map to existing semaphore xfaces */
+acpi_cpu_flags acpi_os_acquire_lock(acpi_handle handle);
-#define acpi_os_create_mutex(out_handle) acpi_os_create_semaphore (1, 1, out_handle)
-#define acpi_os_delete_mutex(handle) (void) acpi_os_delete_semaphore (handle)
-#define acpi_os_acquire_mutex(handle,time) acpi_os_wait_semaphore (handle, 1, time)
-#define acpi_os_release_mutex(handle) (void) acpi_os_signal_semaphore (handle, 1)
+void acpi_os_release_lock(acpi_handle handle, acpi_cpu_flags flags);
/*
* Memory allocation and mapping
*/
void *acpi_os_allocate(acpi_size size);
+void acpi_os_free(void *memory);
+
acpi_status
acpi_os_map_memory(acpi_physical_address physical_address,
acpi_size size, void __iomem ** logical_address);
/*
* Threads and Scheduling
*/
-acpi_thread_id acpi_os_get_thread_id(void);
+u32 acpi_os_get_thread_id(void);
acpi_status
-acpi_os_execute(acpi_execute_type type,
- acpi_osd_exec_callback function, void *context);
+acpi_os_queue_for_execution(u32 priority,
+ acpi_osd_exec_callback function, void *context);
+
+void acpi_os_wait_events_complete(void *context);
void acpi_os_wait_events_complete(void *context);
/*
* Miscellaneous
*/
-acpi_status acpi_os_validate_interface(char *interface);
-
-acpi_status
-acpi_os_validate_address(u8 space_id,
- acpi_physical_address address, acpi_size length);
-
u8 acpi_os_readable(void *pointer, acpi_size length);
#ifdef ACPI_FUTURE_USAGE
void acpi_os_close_directory(void *dir_handle);
+/*
+ * Debug
+ */
+void
+acpi_os_dbg_assert(void *failed_assertion,
+ void *file_name, u32 line_number, char *message);
+
#endif /* __ACPIOSXF_H__ */