};
#define NULL 0L
-
/*
* atomic operations
* these are _the_ atomic operations, currently cast atop CompareAndSwap,
return OSAddAtomic(-1, value);
}
+#ifdef CMPXCHG8B
void * OSDequeueAtomic(void ** inList, SInt32 inOffset)
{
void * oldListHead;
newListHead = *(void **) (((char *) oldListHead) + inOffset);
} while (! OSCompareAndSwap((UInt32)oldListHead,
(UInt32)newListHead, (UInt32 *)inList));
-
return oldListHead;
}
} while (! OSCompareAndSwap((UInt32)oldListHead, (UInt32)newListHead,
(UInt32 *)inList));
}
-
+#endif /* CMPXCHG8B */
#endif /* !__ppc__ */
static UInt32 OSBitwiseAtomic(UInt32 and_mask, UInt32 or_mask, UInt32 xor_mask, UInt32 * value)