ACPI: osl, add acpi_os_create_lock interface
authorLin Ming <ming.m.lin@intel.com>
Wed, 23 Mar 2011 09:26:34 +0000 (17:26 +0800)
committerLen Brown <len.brown@intel.com>
Fri, 25 Mar 2011 08:32:33 +0000 (04:32 -0400)
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/osl.c
include/acpi/acpiosxf.h

index c90c76a..cf750a7 100644 (file)
@@ -883,14 +883,6 @@ void acpi_os_wait_events_complete(void *context)
 
 EXPORT_SYMBOL(acpi_os_wait_events_complete);
 
-/*
- * Deallocate the memory for a spinlock.
- */
-void acpi_os_delete_lock(acpi_spinlock handle)
-{
-       return;
-}
-
 acpi_status
 acpi_os_create_semaphore(u32 max_units, u32 initial_units, acpi_handle * handle)
 {
@@ -1321,6 +1313,31 @@ int acpi_resources_are_enforced(void)
 }
 EXPORT_SYMBOL(acpi_resources_are_enforced);
 
+/*
+ * Create and initialize a spinlock.
+ */
+acpi_status
+acpi_os_create_lock(acpi_spinlock *out_handle)
+{
+       spinlock_t *lock;
+
+       lock = ACPI_ALLOCATE(sizeof(spinlock_t));
+       if (!lock)
+               return AE_NO_MEMORY;
+       spin_lock_init(lock);
+       *out_handle = lock;
+
+       return AE_OK;
+}
+
+/*
+ * Deallocate the memory for a spinlock.
+ */
+void acpi_os_delete_lock(acpi_spinlock handle)
+{
+       ACPI_FREE(handle);
+}
+
 /*
  * Acquire a spinlock.
  *
index a3252a5..a756bc8 100644 (file)
@@ -98,6 +98,9 @@ acpi_os_table_override(struct acpi_table_header *existing_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);