STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
xatomic0.h
Go to the documentation of this file.
1 /* xatomic0.h internal header */
2 #pragma once
3 #ifndef _XATOMIC0_H
4 #define _XATOMIC0_H
5 #ifndef RC_INVOKED
6 #include <yvals.h>
7 
8  #pragma pack(push,_CRT_PACKING)
9  #pragma warning(push,_STL_WARNING_LEVEL)
10  #pragma warning(disable: _STL_DISABLED_WARNINGS)
11  #pragma push_macro("new")
12  #undef new
13 
15  /* ENUM memory_order */
16 typedef enum memory_order {
23  } memory_order;
24 
27 
28  /* SET SIZES AND FLAGS FOR COMPILER AND TARGET ARCHITECTURE */
29  /* Note: the xxx_SIZE macros are used to generate function names,
30  so they must expand to the digits representing
31  the number of bytes in the type; they cannot be expressions
32  that give the number of bytes. */
33 
34  #define _WCHAR_T_SIZE 2
35  #define _SHORT_SIZE 2
36  #define _INT_SIZE 4
37  #define _LONG_SIZE 4
38  #define _LONGLONG_SIZE 8
39 
40  #if defined(_WIN64)
41  #define _ADDR_SIZE 8
42  #else /* defined(_WIN64) */
43  #define _ADDR_SIZE 4
44  #endif /* defined(_WIN64) */
45 
46  /* ATOMIC REFERENCE COUNTING */
48 
49 inline _Atomic_integral_t
51  { // get counter
52  return (_Counter);
53  }
54 
55  #ifndef _USE_INTERLOCKED_REFCOUNTING
56  #if defined(_M_IX86) || defined(_M_X64) || defined(_M_CEE_PURE)
57  #define _USE_INTERLOCKED_REFCOUNTING 1
58  #else /* defined(_M_IX86) || defined(_M_X64) || defined(_M_CEE_PURE) */
59  #define _USE_INTERLOCKED_REFCOUNTING 0
60  #endif /* defined(_M_IX86) || defined(_M_X64) || defined(_M_CEE_PURE) */
61  #endif /* _USE_INTERLOCKED_REFCOUNTING */
62 
64  #pragma pop_macro("new")
65  #pragma warning(pop)
66  #pragma pack(pop)
67 #endif /* RC_INVOKED */
68 #endif /* _XATOMIC0_H */
69 
70 /*
71  * Copyright (c) by P.J. Plauger. All rights reserved.
72  * Consult your license regarding permissions and restrictions.
73 V6.50:0009 */
#define _STD_BEGIN
Definition: yvals.h:553
unsigned long _Uint32t
Definition: yvals.h:763
_Uint32t _Uint4_t
Definition: xatomic0.h:25
_Uint4_t _Atomic_integral_t
Definition: xatomic0.h:26
_Atomic_integral_t _Get_atomic_count(const _Atomic_counter_t &_Counter)
Definition: xatomic0.h:50
memory_order
Definition: xatomic0.h:16
Definition: xatomic0.h:21
#define _STD_END
Definition: yvals.h:554
Definition: xatomic0.h:18
Definition: xatomic0.h:17
Definition: xatomic0.h:22
Definition: xatomic0.h:20
Definition: xatomic0.h:19
_Atomic_integral_t _Atomic_counter_t
Definition: xatomic0.h:47