tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
stm::WordLoggingUndoLogEntry Struct Reference

#include <UndoLog.hpp>

Collaboration diagram for stm::WordLoggingUndoLogEntry:

Public Member Functions

 WordLoggingUndoLogEntry (void **addr, void *val)
 
void undo () const
 
bool filter (void **lower, void **upper)
 

Public Attributes

void ** addr
 
void * val
 

Detailed Description

The undo log entry is the type stored in the undo log. If we're byte-logging then it has a mask, otherwise it's just an address-value pair.

Constructor & Destructor Documentation

stm::WordLoggingUndoLogEntry::WordLoggingUndoLogEntry ( void **  addr,
void *  val 
)
inline

Member Function Documentation

bool stm::WordLoggingUndoLogEntry::filter ( void **  lower,
void **  upper 
)
inline

Called in order to find out if the logged word falls within the address range. This is used to both filter out undo operations to the protected stack, and the exception object.

Note that while the wordlog can only be completely filtered out, we don't have support for partial filtering here. This is almost certainly ok, since the stack is word aligned, and an exception object is probably aligned as well, and at least a word large.

The bytelog version /can/ be partially filtered, which is just a masking operation.

void stm::WordLoggingUndoLogEntry::undo ( ) const
inline

Member Data Documentation

void** stm::WordLoggingUndoLogEntry::addr
void* stm::WordLoggingUndoLogEntry::val

The documentation for this struct was generated from the following file: