31#define RVM_VERSION "RVM Interface Version 1.3 7 Mar 1994"
32#define RVM_VERSION_MAX 128
35#ifndef _PARALLEL_LIBRARIES
36#define _PARALLEL_LIBRARIES 1
96#define rvm_first_code 199
98#define RVM_EINTERNAL 201
101#define RVM_ELOG_VERSION_SKEW 205
103#define RVM_ENAME_TOO_LONG 207
104#define RVM_ENO_MEMORY 208
105#define RVM_ENOT_MAPPED 209
106#define RVM_EOFFSET 210
107#define RVM_EOPTIONS 211
108#define RVM_EOVERLAP 212
109#define RVM_EPAGER 213
110#define RVM_ERANGE 214
111#define RVM_EREGION 215
112#define RVM_EREGION_DEF 216
114#define RVM_ESTATISTICS 218
115#define RVM_ESTAT_VERSION_SKEW 219
116#define RVM_ETERMINATED 220
117#define RVM_ETHREADS 221
119#define RVM_ETOO_BIG 223
120#define RVM_EUNCOMMIT 224
121#define RVM_EVERSION_SKEW 225
122#define RVM_EVM_OVERLAP 226
123#define rvm_last_code 227
154#define RVM_MK_OFFSET(x, y) rvm_mk_offset((rvm_length_t)(x), (rvm_length_t)(y))
157#define RVM_OFFSET_INITIALIZER(x, y) { (x), (y) }
160#define RVM_ZERO_OFFSET(x) (x) = RVM_MK_OFFSET(0, 0)
167#define RVM_OFFSET_TO_LENGTH(x) ((x).low)
173#define RVM_OFFSET_HIGH_BITS_TO_LENGTH(x) ((x).high)
176#define RVM_LENGTH_TO_OFFSET(x) RVM_MK_OFFSET(0, (x))
183#define RVM_ADD_OFFSETS(x, y) rvm_add_offsets(&(x), &(y))
189#define RVM_ADD_LENGTH_TO_OFFSET(x, y) rvm_add_length_to_offset(&(x), (y))
193#define RVM_ADD_LENGTH_TO_ADDR(length, vmaddr) \
194 ((char *)((rvm_length_t)(length) + (rvm_length_t)(vmaddr)))
199#define RVM_SUB_OFFSETS(x, y) rvm_sub_offsets(&(x), &(y))
205#define RVM_SUB_LENGTH_FROM_OFFSET(x, y) rvm_sub_length_from_offset(&(x), (y))
209#define RVM_SUB_LENGTH_FROM_ADDR(vmaddr, length) \
210 ((char *)((rvm_length_t)(vmaddr) - (rvm_length_t)(length)))
213#define RVM_OFFSET_LSS(x, y) \
214 (((x).high < (y).high) || ((((x).high == (y).high) && ((x).low < (y).low))))
215#define RVM_OFFSET_GTR(x, y) \
216 (((x).high > (y).high) || ((((x).high == (y).high) && ((x).low > (y).low))))
217#define RVM_OFFSET_LEQ(x, y) (!RVM_OFFSET_GTR((x), (y)))
218#define RVM_OFFSET_GEQ(x, y) (!RVM_OFFSET_LSS((x), (y)))
219#define RVM_OFFSET_EQL(x, y) (((x).high == (y).high) && ((x).low == (y).low))
220#define RVM_OFFSET_EQL_ZERO(x) (((x).high == 0) && ((x).low == 0))
225#define RVM_PAGE_SIZE rvm_page_size()
228#define RVM_ROUND_LENGTH_UP_TO_PAGE_SIZE(x) \
229 ((rvm_length_t)(((rvm_length_t)(x) + rvm_page_size() - 1) & \
233#define RVM_ROUND_LENGTH_DOWN_TO_PAGE_SIZE(x) \
234 ((rvm_length_t)((rvm_length_t)(x) & rvm_page_mask()))
237#define RVM_ROUND_ADDR_UP_TO_PAGE_SIZE(x) \
238 ((char *)(((rvm_length_t)(x) + rvm_page_size() - 1) & rvm_page_mask()))
241#define RVM_ROUND_ADDR_DOWN_TO_PAGE_SIZE(x) \
242 ((char *)((rvm_length_t)(x) & rvm_page_mask()))
245#define RVM_ROUND_OFFSET_UP_TO_PAGE_SIZE(x) rvm_rnd_offset_up_to_page(&(x))
248#define RVM_ROUND_OFFSET_DOWN_TO_PAGE_SIZE(x) rvm_rnd_offset_dn_to_page(&(x))
254 struct timeval uname;
293#define RECOVERY_BUF_LEN (256 * 1024)
294#define MIN_RECOVERY_BUF_LEN (64 * 1024)
295#define FLUSH_BUF_LEN (256 * 1024)
296#define MIN_FLUSH_BUF_LEN (64 * 1024)
297#define MAX_READ_LEN (512 * 1024)
299#define RVM_COALESCE_RANGES \
301#define RVM_COALESCE_TRANS \
304#define RVM_ALL_OPTIMIZATIONS (RVM_COALESCE_RANGES | RVM_COALESCE_TRANS)
308#define RVM_MAP_PRIVATE 8
346#define RVM_INIT(options) rvm_initialize(RVM_VERSION, (options))
rvm_options_t * rvm_malloc_options(void)
Definition: rvm_utils.c:947
void rvm_init_tid(rvm_tid_t *tid)
Definition: rvm_utils.c:1032
rvm_offset_t rvm_mk_offset(rvm_length_t x, rvm_length_t y)
Definition: rvm_utils.c:2119
void rvm_free_options(rvm_options_t *options)
Definition: rvm_utils.c:961
int rvm_return_t
Definition: rvm.h:94
rvm_return_t rvm_terminate(void)
Definition: rvm_init.c:114
rvm_offset_t rvm_add_offsets(rvm_offset_t *x, rvm_offset_t *y)
Definition: rvm_utils.c:2159
rvm_return_t rvm_map(rvm_region_t *region, rvm_options_t *options)
Definition: rvm_map.c:922
void rvm_init_options(rvm_options_t *options)
Definition: rvm_utils.c:977
rvm_options_t * rvm_copy_options(rvm_options_t *options)
Definition: rvm_utils.c:992
char * rvm_return(rvm_return_t code)
Definition: rvm_utils.c:1084
rvm_bool_t
Definition: rvm.h:60
@ rvm_true
Definition: rvm.h:62
@ rvm_false
Definition: rvm.h:61
rvm_return_t rvm_flush(void)
Definition: rvm_logflush.c:647
rvm_return_t rvm_modify_bytes(rvm_tid_t *tid, void *dest, const void *src, rvm_length_t length)
Definition: rvm_trans.c:464
void rvm_init_region(rvm_region_t *region)
Definition: rvm_utils.c:873
rvm_return_t rvm_set_options(rvm_options_t *options)
Definition: rvm_status.c:62
rvm_return_t rvm_abort_transaction(rvm_tid_t *tid)
Definition: rvm_trans.c:888
rvm_region_t * rvm_copy_region(rvm_region_t *region)
Definition: rvm_utils.c:879
rvm_return_t rvm_create_log(rvm_options_t *rvm_options, rvm_offset_t *log_len, long mode)
Definition: rvm_logstatus.c:990
rvm_mode_t
Definition: rvm.h:82
@ rvm_last_mode
Definition: rvm.h:90
@ no_flush
Definition: rvm.h:88
@ restore
Definition: rvm.h:85
@ flush
Definition: rvm.h:87
@ no_restore
Definition: rvm.h:86
@ rvm_first_mode
Definition: rvm.h:83
char * rvm_type(rvm_struct_id_t id)
Definition: rvm_utils.c:1105
rvm_return_t rvm_end_transaction(rvm_tid_t *tid, rvm_mode_t mode)
Definition: rvm_trans.c:919
rvm_offset_t rvm_rnd_offset_up_to_page(rvm_offset_t *x)
Definition: rvm_utils.c:2185
rvm_length_t rvm_page_mask()
Definition: rvm_utils.c:2211
rvm_offset_t rvm_add_length_to_offset(rvm_offset_t *offset, rvm_length_t length)
Definition: rvm_utils.c:2130
rvm_return_t rvm_query(rvm_options_t *options, rvm_region_t *region)
Definition: rvm_status.c:135
rvm_return_t rvm_initialize(const char *version, rvm_options_t *opts)
Definition: rvm_init.c:50
rvm_length_t rvm_page_size()
Definition: rvm_utils.c:2206
rvm_tid_t * rvm_copy_tid(rvm_tid_t *tid)
Definition: rvm_utils.c:1040
rvm_region_t * rvm_malloc_region(void)
Definition: rvm_utils.c:852
rvm_tid_t * rvm_malloc_tid(void)
Definition: rvm_utils.c:1012
rvm_return_t rvm_truncate(void)
Definition: rvm_logrecovr.c:2641
unsigned long rvm_length_t
Definition: rvm.h:140
void rvm_free_region(rvm_region_t *region)
Definition: rvm_utils.c:866
char * rvm_mode(rvm_mode_t mode)
Definition: rvm_utils.c:1096
rvm_return_t rvm_set_range(rvm_tid_t *tid, void *dest, rvm_length_t length)
Definition: rvm_trans.c:426
rvm_struct_id_t
Definition: rvm.h:70
@ rvm_statistics_id
Definition: rvm.h:76
@ rvm_region_id
Definition: rvm.h:73
@ rvm_tid_id
Definition: rvm.h:75
@ rvm_options_id
Definition: rvm.h:74
@ rvm_first_struct_id
Definition: rvm.h:71
@ rvm_last_struct_id
Definition: rvm.h:77
rvm_offset_t rvm_sub_offsets(rvm_offset_t *x, rvm_offset_t *y)
Definition: rvm_utils.c:2172
rvm_return_t rvm_unmap(rvm_region_t *region)
Definition: rvm_unmap.c:33
rvm_offset_t rvm_sub_length_from_offset(rvm_offset_t *offset, rvm_length_t length)
Definition: rvm_utils.c:2145
void rvm_free_tid(rvm_tid_t *tid)
Definition: rvm_utils.c:1026
rvm_return_t rvm_begin_transaction(rvm_tid_t *tid, rvm_mode_t mode)
Definition: rvm_trans.c:853
rvm_offset_t rvm_rnd_offset_dn_to_page(rvm_offset_t *x)
Definition: rvm_utils.c:2195
rvm_length_t high
Definition: rvm.h:146
rvm_length_t low
Definition: rvm.h:147
rvm_bool_t from_heap
Definition: rvm.h:271
rvm_length_t recovery_buf_len
Definition: rvm.h:275
long truncate
Definition: rvm.h:274
rvm_bool_t log_empty
Definition: rvm.h:278
char * log_dev
Definition: rvm.h:273
rvm_struct_id_t struct_id
Definition: rvm.h:270
long create_log_mode
Definition: rvm.h:287
char * pager
Definition: rvm.h:279
rvm_length_t flags
Definition: rvm.h:283
rvm_tid_t * tid_array
Definition: rvm.h:281
rvm_offset_t create_log_size
Definition: rvm.h:286
rvm_bool_t create_log_file
Definition: rvm.h:284
long n_uncommit
Definition: rvm.h:280
rvm_length_t flush_buf_len
Definition: rvm.h:276
rvm_length_t max_read_len
Definition: rvm.h:277
rvm_offset_t dev_length
Definition: rvm.h:324
rvm_length_t length
Definition: rvm.h:327
rvm_offset_t offset
Definition: rvm.h:325
char * vmaddr
Definition: rvm.h:326
char * data_dev
Definition: rvm.h:323
rvm_bool_t no_copy
Definition: rvm.h:328
rvm_bool_t from_heap
Definition: rvm.h:321
rvm_struct_id_t struct_id
Definition: rvm.h:320
rvm_struct_id_t struct_id
Definition: rvm.h:252
rvm_bool_t from_heap
Definition: rvm.h:253
rvm_length_t reserved
Definition: rvm.h:257
void * tid
Definition: rvm.h:256
rvm_region_t * region
Definition: testrvm.c:34
rvm_options_t * options
Definition: testrvm.c:33