]> git.saurik.com Git - apple/xnu.git/blobdiff - libkern/libkern/OSAtomic.h
xnu-4903.270.47.tar.gz
[apple/xnu.git] / libkern / libkern / OSAtomic.h
index 76b945443ba43c53d1d2f5bddb451e6133d4cedb..375151929965ad72142c711f447b71ea85e810c0 100644 (file)
@@ -65,7 +65,7 @@ extern "C" {
  * This header declares the OSAtomic group of functions for atomic
  * reading and updating of values.
  */
+
 /*!
  * @function OSCompareAndSwap64
  *
@@ -76,9 +76,9 @@ extern "C" {
  * See OSCompareAndSwap.
  */
 extern Boolean OSCompareAndSwap64(
-    UInt64            oldValue,
-    UInt64            newValue,
-    volatile UInt64 * address);
+       UInt64            oldValue,
+       UInt64            newValue,
+       volatile UInt64 * address);
 #define OSCompareAndSwap64(a, b, c) \
        (OSCompareAndSwap64(a, b, __SAFE_CAST_PTR(volatile UInt64*,c)))
 
@@ -92,8 +92,8 @@ extern Boolean OSCompareAndSwap64(
  * See OSAddAtomic.
  */
 extern SInt64 OSAddAtomic64(
-    SInt64            theAmount,
-    volatile SInt64 * address);
+       SInt64            theAmount,
+       volatile SInt64 * address);
 #define OSAddAtomic64(a, b) \
        (OSAddAtomic64(a, __SAFE_CAST_PTR(volatile SInt64*,b)))
 
@@ -105,10 +105,11 @@ extern SInt64 OSAddAtomic64(
  *
  * @discussion
  * See OSIncrementAtomic.
-*/
-inline static SInt64 OSIncrementAtomic64(volatile SInt64 * address)
+ */
+inline static SInt64
+OSIncrementAtomic64(volatile SInt64 * address)
 {
-    return OSAddAtomic64(1LL, address);
+       return OSAddAtomic64(1LL, address);
 }
 
 /*!
@@ -119,10 +120,11 @@ inline static SInt64 OSIncrementAtomic64(volatile SInt64 * address)
  *
  * @discussion
  * See OSDecrementAtomic.
-*/
-inline static SInt64 OSDecrementAtomic64(volatile SInt64 * address)
+ */
+inline static SInt64
+OSDecrementAtomic64(volatile SInt64 * address)
 {
-    return OSAddAtomic64(-1LL, address);
+       return OSAddAtomic64(-1LL, address);
 }
 
 #if XNU_KERNEL_PRIVATE
@@ -137,8 +139,8 @@ inline static SInt64 OSDecrementAtomic64(volatile SInt64 * address)
  * See OSAddAtomic.
  */
 extern long OSAddAtomicLong(
-    long            theAmount,
-    volatile long * address);
+       long            theAmount,
+       volatile long * address);
 #define OSAddAtomicLong(a, b) \
        (OSAddAtomicLong(a, __SAFE_CAST_PTR(volatile long*,b)))
 
@@ -151,10 +153,11 @@ extern long OSAddAtomicLong(
  *
  * @discussion
  * See OSIncrementAtomic.
-*/
-inline static long OSIncrementAtomicLong(volatile long * address)
+ */
+inline static long
+OSIncrementAtomicLong(volatile long * address)
 {
-    return OSAddAtomicLong(1L, address);
+       return OSAddAtomicLong(1L, address);
 }
 
 /* Not to be included in headerdoc.
@@ -165,9 +168,10 @@ inline static long OSIncrementAtomicLong(volatile long * address)
  * 32/64-bit decrement, depending on sizeof(long)
  *@discussion See OSDecrementAtomic.
  */
-inline static long OSDecrementAtomicLong(volatile long * address)
+inline static long
+OSDecrementAtomicLong(volatile long * address)
 {
-    return OSAddAtomicLong(-1L, address);
+       return OSAddAtomicLong(-1L, address);
 }
 #endif /* XNU_KERNEL_PRIVATE */
 
@@ -189,9 +193,9 @@ inline static long OSDecrementAtomicLong(volatile long * address)
  * @result true if newValue was written to the address.
  */
 extern Boolean OSCompareAndSwap8(
-    UInt8            oldValue,
-    UInt8            newValue,
-    volatile UInt8 * address);
+       UInt8            oldValue,
+       UInt8            newValue,
+       volatile UInt8 * address);
 #define OSCompareAndSwap8(a, b, c) \
        (OSCompareAndSwap8(a, b, __SAFE_CAST_PTR(volatile UInt8*,c)))
 
@@ -212,9 +216,9 @@ extern Boolean OSCompareAndSwap8(
  * @result true if newValue was written to the address.
  */
 extern Boolean OSCompareAndSwap16(
-    UInt16            oldValue,
-    UInt16            newValue,
-    volatile UInt16 * address);
+       UInt16            oldValue,
+       UInt16            newValue,
+       volatile UInt16 * address);
 #define OSCompareAndSwap16(a, b, c) \
        (OSCompareAndSwap16(a, b, __SAFE_CAST_PTR(volatile UInt16*,c)))
 
@@ -237,9 +241,9 @@ extern Boolean OSCompareAndSwap16(
  * @result true if newValue was written to the address.
  */
 extern Boolean OSCompareAndSwap(
-    UInt32            oldValue,
-    UInt32            newValue,
-    volatile UInt32 * address);
+       UInt32            oldValue,
+       UInt32            newValue,
+       volatile UInt32 * address);
 #define OSCompareAndSwap(a, b, c) \
        (OSCompareAndSwap(a, b, __SAFE_CAST_PTR(volatile UInt32*,c)))
 
@@ -259,9 +263,9 @@ extern Boolean OSCompareAndSwap(
  * @result true if newValue was written to the address.
  */
 extern Boolean OSCompareAndSwapPtr(
-    void            * oldValue,
-    void            * newValue,
-    void * volatile * address);
+       void            * oldValue,
+       void            * newValue,
+       void * volatile * address);
 #define OSCompareAndSwapPtr(a, b, c) \
        (OSCompareAndSwapPtr(a, b, __SAFE_CAST_PTR(void * volatile *,c)))
 
@@ -280,8 +284,8 @@ extern Boolean OSCompareAndSwapPtr(
  * @result The value before the addition
  */
 extern SInt32 OSAddAtomic(
-    SInt32            amount,
-    volatile SInt32 * address);
+       SInt32            amount,
+       volatile SInt32 * address);
 #define OSAddAtomic(a, b) \
        (OSAddAtomic(a, __SAFE_CAST_PTR(volatile SInt32*,b)))
 
@@ -299,8 +303,8 @@ extern SInt32 OSAddAtomic(
  * @result The value before the addition
  */
 extern SInt16 OSAddAtomic16(
-    SInt32            amount,
-    volatile SInt16 * address);
+       SInt32            amount,
+       volatile SInt16 * address);
 
 /*!
  * @function OSAddAtomic8
@@ -317,8 +321,8 @@ extern SInt16 OSAddAtomic16(
  * @result The value before the addition.
  */
 extern SInt8 OSAddAtomic8(
-    SInt32           amount,
-    volatile SInt8 * address);
+       SInt32           amount,
+       volatile SInt8 * address);
 
 /*!
  * @function OSIncrementAtomic
@@ -429,8 +433,8 @@ extern SInt8 OSDecrementAtomic8(volatile SInt8 * address);
  * @result The value before the bitwise operation
  */
 extern UInt32 OSBitAndAtomic(
-    UInt32            mask,
-    volatile UInt32 * address);
+       UInt32            mask,
+       volatile UInt32 * address);
 #define OSBitAndAtomic(a, b) \
        (OSBitAndAtomic(a, __SAFE_CAST_PTR(volatile UInt32*,b)))
 
@@ -449,8 +453,8 @@ extern UInt32 OSBitAndAtomic(
  * @result The value before the bitwise operation.
  */
 extern UInt16 OSBitAndAtomic16(
-    UInt32            mask,
-    volatile UInt16 * address);
+       UInt32            mask,
+       volatile UInt16 * address);
 
 /*!
  * @function OSBitAndAtomic8
@@ -467,8 +471,8 @@ extern UInt16 OSBitAndAtomic16(
  * @result The value before the bitwise operation.
  */
 extern UInt8 OSBitAndAtomic8(
-    UInt32           mask,
-    volatile UInt8 * address);
+       UInt32           mask,
+       volatile UInt8 * address);
 
 /*!
  * @function OSBitOrAtomic
@@ -485,8 +489,8 @@ extern UInt8 OSBitAndAtomic8(
  * @result The value before the bitwise operation.
  */
 extern UInt32 OSBitOrAtomic(
-    UInt32            mask,
-    volatile UInt32 * address);
+       UInt32            mask,
+       volatile UInt32 * address);
 #define OSBitOrAtomic(a, b) \
        (OSBitOrAtomic(a, __SAFE_CAST_PTR(volatile UInt32*,b)))
 
@@ -505,8 +509,8 @@ extern UInt32 OSBitOrAtomic(
  * @result The value before the bitwise operation.
  */
 extern UInt16 OSBitOrAtomic16(
-    UInt32            mask,
-    volatile UInt16 * address);
+       UInt32            mask,
+       volatile UInt16 * address);
 
 /*!
  * @function OSBitOrAtomic8
@@ -523,8 +527,8 @@ extern UInt16 OSBitOrAtomic16(
  * @result The value before the bitwise operation.
  */
 extern UInt8 OSBitOrAtomic8(
-    UInt32           mask,
-    volatile UInt8 * address);
+       UInt32           mask,
+       volatile UInt8 * address);
 
 /*!
  * @function OSBitXorAtomic
@@ -541,8 +545,8 @@ extern UInt8 OSBitOrAtomic8(
  * @result The value before the bitwise operation.
  */
 extern UInt32 OSBitXorAtomic(
-    UInt32            mask,
-    volatile UInt32 * address);
+       UInt32            mask,
+       volatile UInt32 * address);
 #define OSBitXorAtomic(a, b) \
        (OSBitXorAtomic(a, __SAFE_CAST_PTR(volatile UInt32*,b)))
 
@@ -561,8 +565,8 @@ extern UInt32 OSBitXorAtomic(
  * @result The value before the bitwise operation.
  */
 extern UInt16 OSBitXorAtomic16(
-    UInt32            mask,
-    volatile UInt16 * address);
+       UInt32            mask,
+       volatile UInt16 * address);
 
 /*!
  * @function OSBitXorAtomic8
@@ -579,8 +583,8 @@ extern UInt16 OSBitXorAtomic16(
  * @result The value before the bitwise operation.
  */
 extern UInt8 OSBitXorAtomic8(
-    UInt32           mask,
-    volatile UInt8 * address);
+       UInt32           mask,
+       volatile UInt8 * address);
 
 /*!
  * @function OSTestAndSet
@@ -597,8 +601,8 @@ extern UInt8 OSBitXorAtomic8(
  * @result true if the bit was already set, false otherwise.
  */
 extern Boolean OSTestAndSet(
-    UInt32           bit,
-    volatile UInt8 * startAddress);
+       UInt32           bit,
+       volatile UInt8 * startAddress);
 
 /*!
  * @function OSTestAndClear
@@ -615,8 +619,8 @@ extern Boolean OSTestAndSet(
  * @result true if the bit was already clear, false otherwise.
  */
 extern Boolean OSTestAndClear(
-    UInt32           bit,
-    volatile UInt8 * startAddress);
+       UInt32           bit,
+       volatile UInt8 * startAddress);
 
 /*!
  * @defined OS_SPINLOCK_INIT
@@ -627,9 +631,9 @@ extern Boolean OSTestAndClear(
  * @discussion
  * The convention is that unlocked is zero, locked is nonzero.
  */
-#define        OS_SPINLOCK_INIT 0
+#define OS_SPINLOCK_INIT 0
 
-/*! 
+/*!
  * @typedef OSSpinLock
  *
  * @abstract
@@ -651,7 +655,7 @@ typedef SInt32 OSSpinLock;
  * Multiprocessor locks used within the shared memory area between the kernel and event system.  These must work in both user and kernel mode.
  *
  * @result
- * Returns false if the lock was already held by another thread, true if it took the lock successfully. 
+ * Returns false if the lock was already held by another thread, true if it took the lock successfully.
  */
 extern Boolean OSSpinLockTry(volatile OSSpinLock * lock);
 
@@ -679,21 +683,26 @@ extern void OSSpinLockUnlock(volatile OSSpinLock * lock);
 #if defined(__arm__) || defined(__arm64__)
 extern void OSSynchronizeIO(void);
 #else
-static __inline__ void OSSynchronizeIO(void)
+static __inline__ void
+OSSynchronizeIO(void)
 {
 }
 #endif
 
-#if    defined(KERNEL_PRIVATE)
+#if     defined(KERNEL_PRIVATE)
 
-#if    defined(__arm__) || defined(__arm64__)
-static inline void OSMemoryBarrier(void) {
-       __asm__ volatile("dmb ish" ::: "memory");
+#if     defined(__arm__) || defined(__arm64__)
+static inline void
+OSMemoryBarrier(void)
+{
+       __asm__ volatile ("dmb ish" ::: "memory");
 }
 #elif defined(__i386__) || defined(__x86_64__)
-#if    defined(XNU_KERNEL_PRIVATE)
-static inline void OSMemoryBarrier(void) {
-       __asm__ volatile("mfence" ::: "memory");
+#if     defined(XNU_KERNEL_PRIVATE)
+static inline void
+OSMemoryBarrier(void)
+{
+       __asm__ volatile ("mfence" ::: "memory");
 }
 #endif /* XNU_KERNEL_PRIVATE */
 #endif