summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-08-13 21:34:03 +0000
committerjkim <jkim@FreeBSD.org>2013-08-13 21:34:03 +0000
commitc55a3ec3ad5884ca8d071250121cadfedbfe9687 (patch)
treec107646499bee791de8ebb32d0ccc9dcd8f89fce
parentddc35de90bbacb7749bacc2a3067d3ae31a644c5 (diff)
downloadFreeBSD-src-c55a3ec3ad5884ca8d071250121cadfedbfe9687.zip
FreeBSD-src-c55a3ec3ad5884ca8d071250121cadfedbfe9687.tar.gz
Tidy up global locks for ACPICA. There is no functional change.
-rw-r--r--sys/amd64/include/acpica_machdep.h6
-rw-r--r--sys/dev/acpica/Osd/OsdSynch.c22
-rw-r--r--sys/i386/include/acpica_machdep.h6
-rw-r--r--sys/ia64/include/acpica_machdep.h6
4 files changed, 19 insertions, 21 deletions
diff --git a/sys/amd64/include/acpica_machdep.h b/sys/amd64/include/acpica_machdep.h
index eb0282a..4743786 100644
--- a/sys/amd64/include/acpica_machdep.h
+++ b/sys/amd64/include/acpica_machdep.h
@@ -59,9 +59,9 @@
#define ACPI_FLUSH_CPU_CACHE() wbinvd()
-/* Section 5.2.9.1: global lock acquire/release functions */
-extern int acpi_acquire_global_lock(uint32_t *lock);
-extern int acpi_release_global_lock(uint32_t *lock);
+/* Section 5.2.10.1: global lock acquire/release functions */
+int acpi_acquire_global_lock(volatile uint32_t *);
+int acpi_release_global_lock(volatile uint32_t *);
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \
(Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \
} while (0)
diff --git a/sys/dev/acpica/Osd/OsdSynch.c b/sys/dev/acpica/Osd/OsdSynch.c
index b70a120..99a69ec 100644
--- a/sys/dev/acpica/Osd/OsdSynch.c
+++ b/sys/dev/acpica/Osd/OsdSynch.c
@@ -566,8 +566,6 @@ AcpiOsReleaseLock(ACPI_SPINLOCK Handle, ACPI_CPU_FLAGS Flags)
}
/* Section 5.2.10.1: global lock acquire/release functions */
-#define GL_BIT_PENDING 0x01
-#define GL_BIT_OWNED 0x02
/*
* Acquire the global lock. If busy, set the pending bit. The caller
@@ -575,18 +573,18 @@ AcpiOsReleaseLock(ACPI_SPINLOCK Handle, ACPI_CPU_FLAGS Flags)
* and then attempt to acquire it again.
*/
int
-acpi_acquire_global_lock(uint32_t *lock)
+acpi_acquire_global_lock(volatile uint32_t *lock)
{
uint32_t new, old;
do {
old = *lock;
- new = (old & ~GL_BIT_PENDING) | GL_BIT_OWNED;
- if ((old & GL_BIT_OWNED) != 0)
- new |= GL_BIT_PENDING;
- } while (atomic_cmpset_acq_int(lock, old, new) == 0);
+ new = (old & ~ACPI_GLOCK_PENDING) | ACPI_GLOCK_OWNED;
+ if ((old & ACPI_GLOCK_OWNED) != 0)
+ new |= ACPI_GLOCK_PENDING;
+ } while (atomic_cmpset_32(lock, old, new) == 0);
- return ((new & GL_BIT_PENDING) == 0);
+ return ((new & ACPI_GLOCK_PENDING) == 0);
}
/*
@@ -595,14 +593,14 @@ acpi_acquire_global_lock(uint32_t *lock)
* releases the lock.
*/
int
-acpi_release_global_lock(uint32_t *lock)
+acpi_release_global_lock(volatile uint32_t *lock)
{
uint32_t new, old;
do {
old = *lock;
- new = old & ~(GL_BIT_PENDING | GL_BIT_OWNED);
- } while (atomic_cmpset_rel_int(lock, old, new) == 0);
+ new = old & ~(ACPI_GLOCK_PENDING | ACPI_GLOCK_OWNED);
+ } while (atomic_cmpset_32(lock, old, new) == 0);
- return ((old & GL_BIT_PENDING) != 0);
+ return ((old & ACPI_GLOCK_PENDING) != 0);
}
diff --git a/sys/i386/include/acpica_machdep.h b/sys/i386/include/acpica_machdep.h
index c4419f2..07bc167 100644
--- a/sys/i386/include/acpica_machdep.h
+++ b/sys/i386/include/acpica_machdep.h
@@ -59,9 +59,9 @@
#define ACPI_FLUSH_CPU_CACHE() wbinvd()
-/* Section 5.2.9.1: global lock acquire/release functions */
-extern int acpi_acquire_global_lock(uint32_t *lock);
-extern int acpi_release_global_lock(uint32_t *lock);
+/* Section 5.2.10.1: global lock acquire/release functions */
+int acpi_acquire_global_lock(volatile uint32_t *);
+int acpi_release_global_lock(volatile uint32_t *);
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \
(Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \
} while (0)
diff --git a/sys/ia64/include/acpica_machdep.h b/sys/ia64/include/acpica_machdep.h
index f64ab8f..2f861e8 100644
--- a/sys/ia64/include/acpica_machdep.h
+++ b/sys/ia64/include/acpica_machdep.h
@@ -60,9 +60,9 @@
#define ACPI_FLUSH_CPU_CACHE() /* XXX ia64_fc()? */
-/* Section 5.2.9.1: global lock acquire/release functions */
-extern int acpi_acquire_global_lock(uint32_t *lock);
-extern int acpi_release_global_lock(uint32_t *lock);
+/* Section 5.2.10.1: global lock acquire/release functions */
+int acpi_acquire_global_lock(volatile uint32_t *);
+int acpi_release_global_lock(volatile uint32_t *);
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \
(Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \
} while (0)
OpenPOWER on IntegriCloud