20 #ifndef STM_API_CXXTM_HPP
21 #define STM_API_CXXTM_HPP
27 [[transaction_safe]]
void* malloc(
size_t) __THROW;
28 [[transaction_safe]]
void free(
void*) __THROW;
32 #define TM_CALLABLE [[transaction_safe]]
34 #define TM_BEGIN(TYPE) __transaction [[TYPE]] {
37 #define TM_WAIVER __transaction [[waiver]]
39 #define TM_GET_THREAD()
43 #define TM_PARAM_ALONE
45 #define TM_READ(x) (x)
46 #define TM_WRITE(x, y) (x) = (y)
60 #if defined(ITM) || defined(ITM2STM)
63 #define TM_SYS_INIT _ITM_initializeProcess
64 #define TM_THREAD_INIT _ITM_initializeThread
65 #define TM_THREAD_SHUTDOWN _ITM_finalizeThread
66 #define TM_SYS_SHUTDOWN _ITM_finalizeProcess
67 #define TM_ALLOC malloc
70 #define TM_SET_POLICY(P) stm::set_policy(P)
71 #define TM_GET_ALGNAME() stm::get_algname()
73 #define TM_SET_POLICY(P)
74 #define TM_GET_ALGNAME() "icc builtin libitm.a"
76 #define TM_BEGIN_FAST_INITIALIZATION nop
77 #define TM_END_FAST_INITIALIZATION nop
79 #error "We're not prepared for your implementation of the C++ TM spec."
82 #endif // API_CXXTM_HPP
Definition: stm_fraser.c:61
const char * get_algname()
Definition: txthread.cpp:386
void set_policy(const char *)
Definition: txthread.cpp:261