Simplify type of ms_srcimps and ms_textual_imps.
[ghc.git] / rts / WSDeque.h
index d85567c..4993d5a 100644 (file)
@@ -3,7 +3,7 @@
  * (c) The GHC Team, 2009
  *
  * Work-stealing Deque data structure
  * (c) The GHC Team, 2009
  *
  * Work-stealing Deque data structure
- * 
+ *
  * ---------------------------------------------------------------------------*/
 
 #ifndef WSDEQUE_H
  * ---------------------------------------------------------------------------*/
 
 #ifndef WSDEQUE_H
@@ -11,8 +11,8 @@
 
 typedef struct WSDeque_ {
     // Size of elements array. Used for modulo calculation: we round up
 
 typedef struct WSDeque_ {
     // Size of elements array. Used for modulo calculation: we round up
-    // to powers of 2 and use the dyadic log (modulo == bitwise &) 
-    StgWord size; 
+    // to powers of 2 and use the dyadic log (modulo == bitwise &)
+    StgWord size;
     StgWord moduloSize; /* bitmask for modulo */
 
     // top, index where multiple readers steal() (protected by a cas)
     StgWord moduloSize; /* bitmask for modulo */
 
     // top, index where multiple readers steal() (protected by a cas)
@@ -24,7 +24,7 @@ typedef struct WSDeque_ {
 
     // both top and bottom are continuously incremented, and used as
     // an index modulo the current array size.
 
     // both top and bottom are continuously incremented, and used as
     // an index modulo the current array size.
-  
+
     // lower bound on the current top value. This is an internal
     // optimisation to avoid unnecessarily accessing the top field
     // inside pushBottom
     // lower bound on the current top value. This is an internal
     // optimisation to avoid unnecessarily accessing the top field
     // inside pushBottom
@@ -41,7 +41,7 @@ typedef struct WSDeque_ {
 
 /* INVARIANTS, in this order: reasonable size,
    topBound consistent, space pointer, space accessible to us.
 
 /* INVARIANTS, in this order: reasonable size,
    topBound consistent, space pointer, space accessible to us.
-   
+
    NB. This is safe to use only (a) on a spark pool owned by the
    current thread, or (b) when there's only one thread running, or no
    stealing going on (e.g. during GC).
    NB. This is safe to use only (a) on a spark pool owned by the
    current thread, or (b) when there's only one thread running, or no
    stealing going on (e.g. during GC).
@@ -54,7 +54,7 @@ typedef struct WSDeque_ {
   ASSERT(*((p)->elements - 1  + ((p)->size)) || 1);
 
 // No: it is possible that top > bottom when using pop()
   ASSERT(*((p)->elements - 1  + ((p)->size)) || 1);
 
 // No: it is possible that top > bottom when using pop()
-//  ASSERT((p)->bottom >= (p)->top);           
+//  ASSERT((p)->bottom >= (p)->top);
 //  ASSERT((p)->size > (p)->bottom - (p)->top);
 
 /* -----------------------------------------------------------------------------
 //  ASSERT((p)->size > (p)->bottom - (p)->top);
 
 /* -----------------------------------------------------------------------------
@@ -79,7 +79,7 @@ void* popWSDeque (WSDeque *q);
 rtsBool pushWSDeque (WSDeque *q, void *elem);
 
 // Removes all elements from the deque
 rtsBool pushWSDeque (WSDeque *q, void *elem);
 
 // Removes all elements from the deque
-INLINE_HEADER void discardElements (WSDeque *q);
+EXTERN_INLINE void discardElements (WSDeque *q);
 
 // Removes an element of the deque from the "read" end, or returns
 // NULL if the pool is empty, or if there was a collision with another
 
 // Removes an element of the deque from the "read" end, or returns
 // NULL if the pool is empty, or if there was a collision with another
@@ -93,15 +93,15 @@ void * stealWSDeque (WSDeque *q);
 // "guesses" whether a deque is empty. Can return false negatives in
 //  presence of concurrent steal() calls, and false positives in
 //  presence of a concurrent pushBottom().
 // "guesses" whether a deque is empty. Can return false negatives in
 //  presence of concurrent steal() calls, and false positives in
 //  presence of a concurrent pushBottom().
-INLINE_HEADER rtsBool looksEmptyWSDeque (WSDeque* q);
+EXTERN_INLINE rtsBool looksEmptyWSDeque (WSDeque* q);
 
 
-INLINE_HEADER long dequeElements   (WSDeque *q);
+EXTERN_INLINE long dequeElements   (WSDeque *q);
 
 /* -----------------------------------------------------------------------------
  * PRIVATE below here
  * -------------------------------------------------------------------------- */
 
 
 /* -----------------------------------------------------------------------------
  * PRIVATE below here
  * -------------------------------------------------------------------------- */
 
-INLINE_HEADER long
+EXTERN_INLINE long
 dequeElements (WSDeque *q)
 {
     StgWord t = q->top;
 dequeElements (WSDeque *q)
 {
     StgWord t = q->top;
@@ -110,13 +110,13 @@ dequeElements (WSDeque *q)
     return ((long)b - (long)t);
 }
 
     return ((long)b - (long)t);
 }
 
-INLINE_HEADER rtsBool
+EXTERN_INLINE rtsBool
 looksEmptyWSDeque (WSDeque *q)
 {
     return (dequeElements(q) <= 0);
 }
 
 looksEmptyWSDeque (WSDeque *q)
 {
     return (dequeElements(q) <= 0);
 }
 
-INLINE_HEADER void
+EXTERN_INLINE void
 discardElements (WSDeque *q)
 {
     q->top = q->bottom;
 discardElements (WSDeque *q)
 {
     q->top = q->bottom;