Remove LiveTV menu.
[vuplus_xbmc] / xbmc / threads / Atomics.cpp
index 443ec49..8d2cee3 100644 (file)
@@ -1,6 +1,6 @@
 /*
- *      Copyright (C) 2005-2012 Team XBMC
- *      http://www.xbmc.org
+ *      Copyright (C) 2005-2013 Team XBMC
+ *      http://xbmc.org
  *
  *  This Program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  */
 
 #include "Atomics.h"
+#include "system.h"
+
+// oskwon :: cas/cas2, not implemented yet.
 
-// the only safe way to be absolutly sure that
-// gcc intrinsics are present when using an unknown GCC
-#if defined(__GNUC__) && defined(__GNUC_MINOR__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-  #define HAS_GCC_INTRINSICS
-#elif defined(TARGET_DARWIN)
-  // safe under darwin gcc-4.2, llvm-gcc-4.2 and clang
-  #define HAS_GCC_INTRINSICS
-#elif defined(TARGET_FREEBSD)
-  // safe under freebsd gcc-4.2 and clang
-  #define HAS_GCC_INTRINSICS
-#endif
 ///////////////////////////////////////////////////////////////////////////
 // 32-bit atomic compare-and-swap
 // Returns previous value of *pAddr
 ///////////////////////////////////////////////////////////////////////////
 long cas(volatile long *pAddr, long expectedVal, long swapVal)
 {
-#if defined(HAS_GCC_INTRINSICS)
+#if defined(HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP)
   return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
 #elif defined(__ppc__) || defined(__powerpc__) // PowerPC
   unsigned int prev;
@@ -79,7 +71,7 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
   #error atomic cas undefined for mips
   return prev;
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   long prev;
   __asm
   {
@@ -119,7 +111,7 @@ long long cas2(volatile long long* pAddr, long long expectedVal, long long swapV
 // Hack to allow compilation
   throw "cas2 is not implemented";
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   long long prev;
   __asm
   {
@@ -159,7 +151,7 @@ long long cas2(volatile long long* pAddr, long long expectedVal, long long swapV
 ///////////////////////////////////////////////////////////////////////////
 long AtomicIncrement(volatile long* pAddr)
 {
-#if defined(HAS_GCC_INTRINSICS)
+#if defined(HAS_BUILTIN_SYNC_ADD_AND_FETCH)
   return __sync_add_and_fetch(pAddr, 1);
 
 #elif defined(__ppc__) || defined(__powerpc__) // PowerPC
@@ -199,7 +191,7 @@ long AtomicIncrement(volatile long* pAddr)
   #error AtomicIncrement undefined for mips
   return val;
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   long val;
   __asm
   {
@@ -237,7 +229,7 @@ long AtomicIncrement(volatile long* pAddr)
 ///////////////////////////////////////////////////////////////////////////
 long AtomicAdd(volatile long* pAddr, long amount)
 {
-#if defined(HAS_GCC_INTRINSICS)
+#if defined(HAS_BUILTIN_SYNC_ADD_AND_FETCH)
   return __sync_add_and_fetch(pAddr, amount);
 
 #elif defined(__ppc__) || defined(__powerpc__) // PowerPC
@@ -277,7 +269,7 @@ long AtomicAdd(volatile long* pAddr, long amount)
   #error AtomicAdd undefined for mips
   return val;
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   __asm
   {
     mov eax, amount;
@@ -315,7 +307,7 @@ long AtomicAdd(volatile long* pAddr, long amount)
 ///////////////////////////////////////////////////////////////////////////
 long AtomicDecrement(volatile long* pAddr)
 {
-#if defined(HAS_GCC_INTRINSICS)
+#if defined(HAS_BUILTIN_SYNC_SUB_AND_FETCH)
   return __sync_sub_and_fetch(pAddr, 1);
 
 #elif defined(__ppc__) || defined(__powerpc__) // PowerPC
@@ -355,7 +347,7 @@ long AtomicDecrement(volatile long* pAddr)
   #error AtomicDecrement undefined for mips
   return val;
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   long val;
   __asm
   {
@@ -393,7 +385,7 @@ long AtomicDecrement(volatile long* pAddr)
 ///////////////////////////////////////////////////////////////////////////
 long AtomicSubtract(volatile long* pAddr, long amount)
 {
-#if defined(HAS_GCC_INTRINSICS)
+#if defined(HAS_BUILTIN_SYNC_SUB_AND_FETCH)
   return __sync_sub_and_fetch(pAddr, amount);
 
 #elif defined(__ppc__) || defined(__powerpc__) // PowerPC
@@ -433,7 +425,7 @@ long AtomicSubtract(volatile long* pAddr, long amount)
   #error AtomicSubtract undefined for mips
   return val;
 
-#elif defined(WIN32)
+#elif defined(TARGET_WINDOWS)
   amount *= -1;
   __asm
   {