From d3e72fa5553ca9912bb4ca4aacdc3919c8caeb4f Mon Sep 17 00:00:00 2001 From: beveloper Date: Wed, 20 Aug 2003 02:08:13 +0000 Subject: [PATCH] added missing 32 bit atomic functions, and added all their 64bit counterparts. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4327 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/support/SupportDefs.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/headers/os/support/SupportDefs.h b/headers/os/support/SupportDefs.h index 13d545578c..90da10f923 100644 --- a/headers/os/support/SupportDefs.h +++ b/headers/os/support/SupportDefs.h @@ -133,9 +133,19 @@ extern "C" { #endif //----- Atomic functions; old value is returned -------------------------------- -extern _IMPEXP_ROOT int32 atomic_add(vint32 *value, int32 addvalue); -extern _IMPEXP_ROOT int32 atomic_and(vint32 *value, int32 andvalue); -extern _IMPEXP_ROOT int32 atomic_or(vint32 *value, int32 orvalue); +extern _IMPEXP_ROOT int32 atomic_set(vint32 *value, int32 newValue); +extern _IMPEXP_ROOT int32 atomic_test_and_set(vint32 *value, int32 newValue, int32 testAgainst); +extern _IMPEXP_ROOT int32 atomic_add(vint32 *value, int32 addValue); +extern _IMPEXP_ROOT int32 atomic_and(vint32 *value, int32 andValue); +extern _IMPEXP_ROOT int32 atomic_or(vint32 *value, int32 orValue); +extern _IMPEXP_ROOT int32 atomic_read(vint32 *value); + +extern _IMPEXP_ROOT int64 atomic_set64(vint64 *value, int64 newValue); +extern _IMPEXP_ROOT int64 atomic_test_and_set64(vint64 *value, int64 newValue, int64 testAgainst); +extern _IMPEXP_ROOT int64 atomic_add64(vint64 *value, int64 addValue); +extern _IMPEXP_ROOT int64 atomic_and64(vint64 *value, int64 andValue); +extern _IMPEXP_ROOT int64 atomic_or64(vint64 *value, int64 orValue); +extern _IMPEXP_ROOT int64 atomic_read64(vint64 *value); // Other stuff ----------------------------------------------------------------- extern _IMPEXP_ROOT void * get_stack_frame(void);