24 #ifndef _IMMINTRIN_H_INCLUDED
25 # error "Never use <rtmintrin.h> directly; include <immintrin.h> instead."
29 # error "RTM instruction set not enabled"
32 #ifndef _RTMINTRIN_H_INCLUDED
33 #define _RTMINTRIN_H_INCLUDED
35 #define _XBEGIN_STARTED (~0u)
36 #define _XABORT_EXPLICIT (1 << 0)
37 #define _XABORT_RETRY (1 << 1)
38 #define _XABORT_CONFLICT (1 << 2)
39 #define _XABORT_CAPACITY (1 << 3)
40 #define _XABORT_DEBUG (1 << 4)
41 #define _XABORT_NESTED (1 << 5)
42 #define _XABORT_CODE(x) (((x) >> 24) & 0xFF)
46 extern __inline
unsigned int
50 return __builtin_ia32_xbegin ();
58 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
61 __builtin_ia32_xend ();
68 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
69 _xabort (const
unsigned int imm)
71 __builtin_ia32_xabort (imm);
74 #define _xabort(N) __builtin_ia32_xabort (N)
#define _xabort(N)
Definition: rtmintrin.h:74
__inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _xbegin(void)
Definition: rtmintrin.h:47