98#define rvmlib_begin_transaction(restore_mode) \
99 _rvmlib_begin_transaction(restore_mode, __FILE__, __LINE__);
109#define CODA_STACK_LENGTH 0x20000
110#define LOGTHRESHOLD 50
115#define RVMLIB_ASSERT(errmsg) \
117 fprintf(stderr, "RVMLIB_ASSERT: %s\n", errmsg); \
119 coda_assert("0", __FILE__, __LINE__); \
122#define rvmlib_rec_malloc(size) rvmlib_malloc(size, __FILE__, __LINE__)
123#define rvmlib_rec_free(addr) rvmlib_free(addr, __FILE__, __LINE__)
124#define rvmlib_rec_strdup(size) rvmlib_strdup(size, __FILE__, __LINE__)
126#define RVMLIB_REC_OBJECT(object) rvmlib_set_range(&(object), sizeof(object))
129#define rvmlib_intrans() rvmlib_check_trans(__FUNCTION__, __FILE__)
133#define RVMLIB_MODIFY(object, newValue) \
135 rvm_perthread_t *_rvm_data = rvmlib_thread_data(); \
137 (object) = (newValue); \
138 else if (RvmType == RAWIO || \
140 rvm_return_t ret = rvm_set_range(_rvm_data->tid, (char *)&object, \
142 if (ret != RVM_SUCCESS) \
143 printf("Modify Bytes error %s\n", rvm_return(ret)); \
144 CODA_ASSERT(ret == RVM_SUCCESS); \
145 (object) = (newValue); \
#define REQUIRES_TRANSACTION
Definition: coda_tsa.h:107
#define ENDS_TRANSACTION
Definition: coda_tsa.h:106
#define BEGINS_TRANSACTION
Definition: coda_tsa.h:105
FILE * file
Definition: dirtest.c:723
int line
Definition: advice_parser.c:54
int rvm_return_t
Definition: rvm.h:94
void rvmlib_abort(int) ENDS_TRANSACTION
Definition: rvmlib.c:159
void rvmlib_set_thread_data(void *)
Definition: rvmlib.c:58
void rvmlib_modify_bytes(void *dest, const void *newval, int len) REQUIRES_TRANSACTION
Definition: rvmlib.c:200
void rvmlib_set_range(void *base, unsigned long size) REQUIRES_TRANSACTION
Definition: rvmlib.c:184
char * rvmlib_strdup(const char *src, const char *file, int line) REQUIRES_TRANSACTION
Definition: rvmlib.c:206
long rvm_no_yield
Definition: rvm_logrecovr.c:46
void _rvmlib_begin_transaction(int restore_mode, const char file[], int line) BEGINS_TRANSACTION
Definition: rvmlib.c:65
void * rvmlib_malloc(unsigned long size, const char *file, int line) REQUIRES_TRANSACTION
Definition: rvmlib.c:217
int rvmlib_in_transaction(void)
Definition: rvmlib.c:282
rvm_type_t
Definition: rvmlib.h:52
@ UFS
Definition: rvmlib.h:55
@ RAWIO
Definition: rvmlib.h:54
@ VM
Definition: rvmlib.h:56
@ UNSET
Definition: rvmlib.h:53
void rvmlib_free(void *p, const char *file, int line) REQUIRES_TRANSACTION
Definition: rvmlib.c:248
void rvmlib_check_trans(char *where, char *file)
Definition: rvmlib.c:272
void rvmlib_init_threaddata(rvm_perthread_t *rvmptt)
Definition: rvmlib.c:36
rvm_perthread_t * rvmlib_thread_data(void)
Definition: rvmlib.c:48
int optimizationson
Definition: srv.cc:135
rvm_type_t RvmType
Definition: rvmlib.c:34
void rvmlib_end_transaction(int flush_mode, rvm_return_t *statusp) ENDS_TRANSACTION
Definition: rvmlib.c:109
rvm_tid_t * tid
Definition: rvmlib.h:60
intentionList_t list
Definition: rvmlib.h:63
int line
Definition: rvmlib.h:67
rvm_tid_t tids
Definition: rvmlib.h:61
const char * file
Definition: rvmlib.h:66