Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // Low-level functions for atomic operations: version for CPUs providing
  2. // atomic builtins -*- C++ -*-
  3.  
  4. // Copyright (C) 2006-2015 Free Software Foundation, Inc.
  5. //
  6. // This file is part of the GNU ISO C++ Library.  This library is free
  7. // software; you can redistribute it and/or modify it under the
  8. // terms of the GNU General Public License as published by the
  9. // Free Software Foundation; either version 3, or (at your option)
  10. // any later version.
  11.  
  12. // This library is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. // GNU General Public License for more details.
  16.  
  17. // Under Section 7 of GPL version 3, you are granted additional
  18. // permissions described in the GCC Runtime Library Exception, version
  19. // 3.1, as published by the Free Software Foundation.
  20.  
  21. // You should have received a copy of the GNU General Public License and
  22. // a copy of the GCC Runtime Library Exception along with this program;
  23. // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  24. // <http://www.gnu.org/licenses/>.
  25.  
  26. #include <bits/c++config.h>
  27. #include <bits/atomic_word.h>
  28.  
  29. namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
  30. {
  31. _GLIBCXX_BEGIN_NAMESPACE_VERSION
  32.  
  33.   _Atomic_word
  34.   __attribute__ ((__unused__))
  35.   __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw ()
  36.   { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
  37.  
  38.   void
  39.   __attribute__ ((__unused__))
  40.   __atomic_add(volatile _Atomic_word* __mem, int __val) throw ()
  41.   { __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
  42.  
  43. _GLIBCXX_END_NAMESPACE_VERSION
  44. } // namespace
  45.