tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
stm.h File Reference
#include "ptst.h"
#include <setjmp.h>
Include dependency graph for stm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define new_stm_tx(_tx, _ptst, _mem)
 

Typedefs

typedef struct stm_st stm
 
typedef struct stm_blk_st stm_blk
 
typedef struct stm_tx_st stm_tx
 

Functions

stmnew_stm (ptst_t *ptst, int blk_size)
 
void free_stm (ptst_t *ptst, stm *mem)
 
stm_blknew_stm_blk (ptst_t *ptst, stm *mem)
 
void free_stm_blk (ptst_t *ptst, stm *mem, stm_blk *b)
 
void * init_stm_blk (ptst_t *ptst, stm *mem, stm_blk *b)
 
int sizeof_stm_blk (ptst_t *ptst, stm *mem, stm_blk *b)
 
stm_txnew_stm_tx (ptst_t *ptst, stm *mem, sigjmp_buf *penv)
 
bool_t commit_stm_tx (ptst_t *ptst, stm_tx *t)
 
bool_t validate_stm_tx (ptst_t *ptst, stm_tx *t)
 
void abort_stm_tx (ptst_t *ptst, stm_tx *t)
 
void * read_stm_blk (ptst_t *ptst, stm_tx *t, stm_blk *b)
 
void * write_stm_blk (ptst_t *ptst, stm_tx *t, stm_blk *b)
 
void remove_from_tx (ptst_t *ptst, stm_tx *t, stm_blk *b)
 
void _init_stm_subsystem (int pad_data)
 

Macro Definition Documentation

#define new_stm_tx (   _tx,
  _ptst,
  _mem 
)
Value:
do { \
sigjmp_buf env; \
sigsetjmp(env, 1); \
(_tx) = new_stm_tx((_ptst), (_mem), &env); \
} while ( 0 )
#define new_stm_tx(_tx, _ptst, _mem)
Definition: stm.h:37

Typedef Documentation

typedef struct stm_st stm
typedef struct stm_blk_st stm_blk
typedef struct stm_tx_st stm_tx

Function Documentation

void _init_stm_subsystem ( int  pad_data)

Here is the call graph for this function:

Here is the caller graph for this function:

void abort_stm_tx ( ptst_t ptst,
stm_tx t 
)

Here is the caller graph for this function:

bool_t commit_stm_tx ( ptst_t ptst,
stm_tx t 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void free_stm ( ptst_t ptst,
stm mem 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void free_stm_blk ( ptst_t ptst,
stm mem,
stm_blk b 
)

Here is the call graph for this function:

void* init_stm_blk ( ptst_t ptst,
stm mem,
stm_blk b 
)

Here is the caller graph for this function:

stm* new_stm ( ptst_t ptst,
int  blk_size 
)

Here is the call graph for this function:

Here is the caller graph for this function:

stm_blk* new_stm_blk ( ptst_t ptst,
stm mem 
)

Here is the call graph for this function:

Here is the caller graph for this function:

stm_tx* new_stm_tx ( ptst_t ptst,
stm mem,
sigjmp_buf *  penv 
)

Here is the call graph for this function:

void* read_stm_blk ( ptst_t ptst,
stm_tx t,
stm_blk b 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void remove_from_tx ( ptst_t ptst,
stm_tx t,
stm_blk b 
)

Here is the call graph for this function:

int sizeof_stm_blk ( ptst_t ptst,
stm mem,
stm_blk b 
)
bool_t validate_stm_tx ( ptst_t ptst,
stm_tx t 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void* write_stm_blk ( ptst_t ptst,
stm_tx t,
stm_blk b 
)

Here is the call graph for this function:

Here is the caller graph for this function: