BVB Source Codes

mars Show capabilities.hpp Source code

Return Download mars: download capabilities.hpp Source code - Download mars Source code - Type:.hpp
  1. /*
  2.  * Distributed under the Boost Software License, Version 1.0.
  3.  * (See accompanying file LICENSE_1_0.txt or copy at
  4.  * http://www.boost.org/LICENSE_1_0.txt)
  5.  *
  6.  * Copyright (c) 2014 Andrey Semashev
  7.  */
  8. /*!
  9.  * \file   atomic/capabilities.hpp
  10.  *
  11.  * This header defines feature capabilities macros.
  12.  */
  13.  
  14. #ifndef BOOST_ATOMIC_CAPABILITIES_HPP_INCLUDED_
  15. #define BOOST_ATOMIC_CAPABILITIES_HPP_INCLUDED_
  16.  
  17. #include <boost/atomic/detail/config.hpp>
  18. #include <boost/atomic/detail/platform.hpp>
  19. #include <boost/atomic/detail/int_sizes.hpp>
  20.  
  21. #if !defined(BOOST_ATOMIC_EMULATED)
  22. #include BOOST_ATOMIC_DETAIL_HEADER(boost/atomic/detail/caps_)
  23. #endif
  24.  
  25. #ifdef BOOST_HAS_PRAGMA_ONCE
  26. #pragma once
  27. #endif
  28.  
  29. #ifndef BOOST_ATOMIC_INT8_LOCK_FREE
  30. #define BOOST_ATOMIC_INT8_LOCK_FREE 0
  31. #endif
  32.  
  33. #ifndef BOOST_ATOMIC_INT16_LOCK_FREE
  34. #define BOOST_ATOMIC_INT16_LOCK_FREE 0
  35. #endif
  36.  
  37. #ifndef BOOST_ATOMIC_INT32_LOCK_FREE
  38. #define BOOST_ATOMIC_INT32_LOCK_FREE 0
  39. #endif
  40.  
  41. #ifndef BOOST_ATOMIC_INT64_LOCK_FREE
  42. #define BOOST_ATOMIC_INT64_LOCK_FREE 0
  43. #endif
  44.  
  45. #ifndef BOOST_ATOMIC_INT128_LOCK_FREE
  46. #define BOOST_ATOMIC_INT128_LOCK_FREE 0
  47. #endif
  48.  
  49.  
  50. #ifndef BOOST_ATOMIC_CHAR_LOCK_FREE
  51. #define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  52. #endif
  53.  
  54. #ifndef BOOST_ATOMIC_CHAR16_T_LOCK_FREE
  55. #define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  56. #endif
  57.  
  58. #ifndef BOOST_ATOMIC_CHAR32_T_LOCK_FREE
  59. #define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  60. #endif
  61.  
  62. #ifndef BOOST_ATOMIC_WCHAR_T_LOCK_FREE
  63. #if BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
  64. #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  65. #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
  66. #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  67. #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
  68. #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  69. #elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
  70. #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  71. #else
  72. #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
  73. #endif
  74. #endif
  75.  
  76. #ifndef BOOST_ATOMIC_SHORT_LOCK_FREE
  77. #if BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1
  78. #define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  79. #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2
  80. #define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  81. #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4
  82. #define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  83. #elif BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8
  84. #define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  85. #else
  86. #define BOOST_ATOMIC_SHORT_LOCK_FREE 0
  87. #endif
  88. #endif
  89.  
  90. #ifndef BOOST_ATOMIC_INT_LOCK_FREE
  91. #if BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1
  92. #define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  93. #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2
  94. #define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  95. #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4
  96. #define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  97. #elif BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8
  98. #define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  99. #else
  100. #define BOOST_ATOMIC_INT_LOCK_FREE 0
  101. #endif
  102. #endif
  103.  
  104. #ifndef BOOST_ATOMIC_LONG_LOCK_FREE
  105. #if BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1
  106. #define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  107. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2
  108. #define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  109. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4
  110. #define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  111. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8
  112. #define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  113. #else
  114. #define BOOST_ATOMIC_LONG_LOCK_FREE 0
  115. #endif
  116. #endif
  117.  
  118. #ifndef BOOST_ATOMIC_LLONG_LOCK_FREE
  119. #if BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1
  120. #define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  121. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2
  122. #define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
  123. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4
  124. #define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  125. #elif BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8
  126. #define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  127. #else
  128. #define BOOST_ATOMIC_LLONG_LOCK_FREE 0
  129. #endif
  130. #endif
  131.  
  132. #ifndef BOOST_ATOMIC_POINTER_LOCK_FREE
  133. #if (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 8
  134. #define BOOST_ATOMIC_POINTER_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
  135. #elif (BOOST_ATOMIC_DETAIL_SIZEOF_POINTER + 0) == 4
  136. #define BOOST_ATOMIC_POINTER_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
  137. #else
  138. #define BOOST_ATOMIC_POINTER_LOCK_FREE 0
  139. #endif
  140. #endif
  141.  
  142. #define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
  143.  
  144. #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
  145. // We store bools in 1-byte storage in all backends
  146. #define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
  147. #endif
  148.  
  149. #ifndef BOOST_ATOMIC_FLAG_LOCK_FREE
  150. #define BOOST_ATOMIC_FLAG_LOCK_FREE BOOST_ATOMIC_BOOL_LOCK_FREE
  151. #endif
  152.  
  153. #ifndef BOOST_ATOMIC_THREAD_FENCE
  154. #define BOOST_ATOMIC_THREAD_FENCE 0
  155. #endif
  156.  
  157. #ifndef BOOST_ATOMIC_SIGNAL_FENCE
  158. #define BOOST_ATOMIC_SIGNAL_FENCE 0
  159. #endif
  160.  
  161. #endif // BOOST_ATOMIC_CAPABILITIES_HPP_INCLUDED_
  162.  
downloadcapabilities.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top