11 #ifndef STM_ITM2STM_SCOPE_H
12 #define STM_ITM2STM_SCOPE_H
91 std::pair<void**, size_t>&
rollback(
void** protected_stack);
112 void log(
void** addr,
void* value,
size_t bytes) {
131 void**
begin()
const;
145 template <
typename F>
160 template <
typename F>
188 void clip(
void** lower,
void** upper);
195 void**
begin()
const;
205 typedef std::vector<Callback<_ITM_userCommitFunction> >
CommitList;
221 #endif // STM_ITM2STM_SCOPE_H
void setAborted(bool val)
Definition: Scope.h:53
ThrownObject thrown_
Definition: Scope.h:211
void setThrownObject(void **addr, size_t length)
Self explanatory, precondition thrown_.address == NULL.
Definition: Scope.cpp:131
void ** address_
Definition: Scope.h:177
void enter(_ITM_transactionId_t id, uint32_t flags)
Definition: Scope.h:72
uint32_t _ITM_transactionId_t
Definition: libitm.h:99
void ** end() const
Definition: Scope.cpp:24
void undo(ThrownObject &, void **protected_stack_lower_bound)
Definition: Scope.cpp:77
F function_
Definition: Scope.h:147
void ** begin() const
Definition: Scope.cpp:31
_ITM_transactionId_t getId() const
Definition: Scope.h:34
bool aborted_
Definition: Scope.h:208
static Callback< F > make_callback(F f, void *arg)
Definition: Scope.h:161
void reset()
Definition: Scope.h:133
uint32_t getFlags() const
Definition: Scope.h:40
void clip(void **lower, void **upper)
Definition: Scope.cpp:43
Definition: intruder.c:122
std::vector< LoggedWord > UndoList
Definition: Scope.h:206
bool isExceptionBlock() const
Used by the Transaction's rollback functionality.
Definition: Scope.h:45
struct _ITM_transaction _ITM_transaction
Definition: libitm.h:98
void clearThrownObject()
Definition: Scope.cpp:139
void(* _ITM_userUndoFunction)(void *)
Definition: libitm.h:100
Scope(_ITM_transaction &)
Definition: Scope.cpp:92
void ** begin() const
Definition: Scope.cpp:19
size_t bytes_
Definition: Scope.h:179
CommitList do_on_commit_
Definition: Scope.h:214
_ITM_transactionId_t id_
Definition: Scope.h:210
void commit()
Definition: Scope.h:95
uint32_t flags_
Definition: Scope.h:209
void registerOnCommit(_ITM_userCommitFunction f, void *arg)
Registration handler is trivial so we inline it.
Definition: Scope.h:117
void eval() const
Definition: Scope.h:153
std::vector< Callback< _ITM_userUndoFunction > > RollbackList
Definition: Scope.h:204
RollbackList do_on_rollback_
Definition: Scope.h:212
LoggedWord(void **addr, void *val, size_t bytes)
Definition: Scope.h:191
UndoList undo_on_rollback_
Definition: Scope.h:213
void * arg_
Definition: Scope.h:148
void(* _ITM_userCommitFunction)(void *)
Definition: libitm.h:101
_ITM_transaction & owner_
Definition: Scope.h:215
void ** end() const
Definition: Scope.cpp:36
std::vector< Callback< _ITM_userCommitFunction > > CommitList
Definition: Scope.h:205
void log(void **addr, void *value, size_t bytes)
Definition: Scope.h:112
void registerOnAbort(_ITM_userUndoFunction f, void *arg)
Registration handler is trivial so we inline it.
Definition: Scope.h:122
void * value_
Definition: Scope.h:178
Callback(F f, void *arg)
Definition: Scope.h:150
bool getAborted() const
Definition: Scope.h:57
Definition: Checkpoint.h:18
std::pair< void **, size_t > & rollback(void **protected_stack)
Definition: Scope.cpp:108
_ITM_transaction & getOwner() const
Definition: Scope.h:63