00001 #ifndef _LOCAL_H
00002 #define _LOCAL_H
00003
00004 typedef struct mtm_local_undo_s mtm_local_undo_t;
00005 typedef struct mtm_local_undo_entry_s mtm_local_undo_entry_t;
00006
00007 struct mtm_local_undo_s {
00008 mtm_local_undo_entry_t *last_entry;
00009 char *buf;
00010 size_t n;
00011 size_t size;
00012 };
00013
00014 void mtm_local_init (mtm_tx_t *tx);
00015 void mtm_local_rollback (mtm_tx_t *tx);
00016 void mtm_local_commit (mtm_tx_t *tx);
00017
00018 # define DECLARE_LOG_BARRIER(name, type, encoding) \
00019 void _ITM_CALL_CONVENTION name##L##encoding (mtm_tx_t *, const type *);
00020
00021 FOR_ALL_TYPES(DECLARE_LOG_BARRIER, mtm_local_)
00022 void _ITM_CALL_CONVENTION mtm_local_LB (mtm_tx_t *, const void *, size_t);
00023
00024 #endif