Coda Distributed File System
Macros | Functions | Variables
rvm_utils.c File Reference
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/time.h>
#include "rvm_private.h"
Include dependency graph for rvm_utils.c:

Macros

#define ZERO   0
 
#define SET_TRAVERSE(tr, pt, st)
 

Functions

void init_list_header (list_entry_t *whichlist, struct_id_t struct_id)
 
list_entry_tmove_list_entry (list_entry_t *fromptr, list_entry_t *toptr, list_entry_t *victim)
 
list_entry_talloc_list_entry (struct_id_t id)
 
void clear_free_lists (void)
 
void make_uname (struct timeval *new_uname)
 
long init_unames (void)
 
long init_utils (void)
 
struct timeval add_times (struct timeval *x, struct timeval *y)
 
struct timeval sub_times (struct timeval *x, struct timeval *y)
 
long round_time (struct timeval *x)
 
region_tmake_region (void)
 
void free_region (region_t *region)
 
char * make_full_name (char *dev_str, char *dev_name, rvm_return_t *retval)
 
rvm_return_t dev_init (device_t *dev, char *dev_str)
 
seg_tmake_seg (char *seg_dev_name, rvm_return_t *retval)
 
void free_seg (seg_t *seg)
 
void free_seg_dict_vec (log_t *log)
 
void free_log (log_t *log)
 
log_tmake_log (char *log_dev_name, rvm_return_t *retval)
 
log_special_tmake_log_special (struct_id_t special_id, rvm_length_t length)
 
void free_log_special (log_special_t *special)
 
range_tmake_range (void)
 
void free_range (range_t *range)
 
int_tid_tmake_tid (rvm_mode_t mode)
 
void free_tid (int_tid_t *tid)
 
mem_region_tmake_mem_region (void)
 
void free_mem_region (mem_region_t *node)
 
dev_region_tmake_dev_region (void)
 
void free_dev_region (dev_region_t *node)
 
rvm_region_trvm_malloc_region (void)
 
void rvm_free_region (rvm_region_t *rvm_region)
 
void rvm_init_region (rvm_region_t *rvm_region)
 
rvm_region_trvm_copy_region (rvm_region_t *rvm_region)
 
rvm_statistics_trvm_malloc_statistics (void)
 
void rvm_free_statistics (rvm_statistics_t *rvm_statistics)
 
void rvm_init_statistics (rvm_statistics_t *rvm_statistics)
 
rvm_statistics_trvm_copy_statistics (rvm_statistics_t *rvm_statistics)
 
rvm_options_trvm_malloc_options (void)
 
void rvm_free_options (rvm_options_t *rvm_options)
 
void rvm_init_options (rvm_options_t *rvm_options)
 
rvm_options_trvm_copy_options (rvm_options_t *rvm_options)
 
rvm_tid_trvm_malloc_tid (void)
 
void rvm_free_tid (rvm_tid_t *rvm_tid)
 
void rvm_init_tid (rvm_tid_t *rvm_tid)
 
rvm_tid_trvm_copy_tid (rvm_tid_t *rvm_tid)
 
char * rvm_return (rvm_return_t code)
 
char * rvm_mode (rvm_mode_t mode)
 
char * rvm_type (rvm_struct_id_t id)
 
rvm_length_t chk_sum (char *nvaddr, rvm_length_t len)
 
void src_aligned_bcopy (char *src, char *dest, rvm_length_t len)
 
void dest_aligned_bcopy (char *src, char *dest, rvm_length_t len)
 
void init_rw_lock (rw_lock_t *rwl)
 
void rw_lock (rw_lock_t *rwl, rw_lock_mode_t mode)
 
void rw_unlock (rw_lock_t *rwl, rw_lock_mode_t mode)
 
void init_tree_root (tree_root_t *root)
 
tree_node_ttree_lookup (tree_root_t *tree, tree_node_t *node, cmp_func_t *cmp)
 
rvm_bool_t tree_insert (tree_root_t *tree, tree_node_t *node, cmp_func_t *cmp)
 
rvm_bool_t tree_delete (tree_root_t *tree, tree_node_t *node, cmp_func_t *cmp)
 
tree_node_ttree_successor (tree_root_t *tree)
 
tree_node_ttree_predecessor (tree_root_t *tree)
 
tree_node_tinit_tree_generator (tree_root_t *tree, rvm_bool_t direction, rvm_bool_t unlink)
 
tree_node_ttree_iterate_insert (tree_root_t *tree, tree_node_t *node, cmp_func_t *cmp)
 
void enter_histogram (long val, rvm_length_t *histo, rvm_length_t *histo_def, long length)
 
rvm_offset_t rvm_mk_offset (rvm_length_t x, rvm_length_t y)
 
rvm_offset_t rvm_add_length_to_offset (rvm_offset_t *offset, rvm_length_t length)
 
rvm_offset_t rvm_sub_length_from_offset (rvm_offset_t *offset, rvm_length_t length)
 
rvm_offset_t rvm_add_offsets (rvm_offset_t *x, rvm_offset_t *y)
 
rvm_offset_t rvm_sub_offsets (rvm_offset_t *x, rvm_offset_t *y)
 
rvm_offset_t rvm_rnd_offset_up_to_page (rvm_offset_t *x)
 
rvm_offset_t rvm_rnd_offset_dn_to_page (rvm_offset_t *x)
 
rvm_length_t rvm_page_size (void)
 
rvm_length_t rvm_page_mask (void)
 
rvm_offset_t rvm_rnd_offset_to_sector (rvm_offset_t *x)
 

Variables

rvm_length_t page_size
 
rvm_length_t page_mask
 
char * rvm_errmsg
 
rvm_length_t rvm_optimizations
 
RVM_MUTEX free_lists_locks [NUM_CACHE_TYPES]
 
long type_counts [NUM_CACHE_TYPES]
 
list_entry_t free_lists [NUM_CACHE_TYPES]
 
long pre_alloc [NUM_CACHE_TYPES] = { NUM_PRE_ALLOCATED }
 
long max_alloc [NUM_CACHE_TYPES] = { MAX_ALLOCATED }
 
long cache_type_sizes [NUM_CACHE_TYPES] = { CACHE_TYPE_SIZES }
 

Macro Definition Documentation

◆ SET_TRAVERSE

#define SET_TRAVERSE (   tr,
  pt,
  st 
)
Value:
(tr)->traverse[++(tr)->level].ptr = (tree_node_t *)(pt); \
(tr)->traverse[(tr)->level].state = (st)
Definition: rvm_private.h:453

◆ ZERO

#define ZERO   0

Function Documentation

◆ add_times()

struct timeval add_times ( struct timeval *  x,
struct timeval *  y 
)

◆ alloc_list_entry()

list_entry_t * alloc_list_entry ( struct_id_t  id)

◆ chk_sum()

rvm_length_t chk_sum ( char *  nvaddr,
rvm_length_t  len 
)

◆ clear_free_lists()

void clear_free_lists ( void  )

◆ dest_aligned_bcopy()

void dest_aligned_bcopy ( char *  src,
char *  dest,
rvm_length_t  len 
)

◆ dev_init()

rvm_return_t dev_init ( device_t dev,
char *  dev_str 
)

◆ enter_histogram()

void enter_histogram ( long  val,
rvm_length_t histo,
rvm_length_t histo_def,
long  length 
)

◆ free_dev_region()

void free_dev_region ( dev_region_t node)

◆ free_log()

void free_log ( log_t log)

◆ free_log_special()

void free_log_special ( log_special_t special)

◆ free_mem_region()

void free_mem_region ( mem_region_t node)

◆ free_range()

void free_range ( range_t range)

◆ free_region()

void free_region ( region_t region)

◆ free_seg()

void free_seg ( seg_t seg)

◆ free_seg_dict_vec()

void free_seg_dict_vec ( log_t log)

◆ free_tid()

void free_tid ( int_tid_t tid)

◆ init_list_header()

void init_list_header ( list_entry_t whichlist,
struct_id_t  struct_id 
)

◆ init_rw_lock()

void init_rw_lock ( rw_lock_t rwl)

◆ init_tree_generator()

tree_node_t * init_tree_generator ( tree_root_t tree,
rvm_bool_t  direction,
rvm_bool_t  unlink 
)

◆ init_tree_root()

void init_tree_root ( tree_root_t root)

◆ init_unames()

long init_unames ( void  )

◆ init_utils()

long init_utils ( void  )

◆ make_dev_region()

dev_region_t * make_dev_region ( void  )

◆ make_full_name()

char * make_full_name ( char *  dev_str,
char *  dev_name,
rvm_return_t retval 
)

◆ make_log()

log_t * make_log ( char *  log_dev_name,
rvm_return_t retval 
)

◆ make_log_special()

log_special_t * make_log_special ( struct_id_t  special_id,
rvm_length_t  length 
)

◆ make_mem_region()

mem_region_t * make_mem_region ( void  )

◆ make_range()

range_t * make_range ( void  )

◆ make_region()

region_t * make_region ( void  )

◆ make_seg()

seg_t * make_seg ( char *  seg_dev_name,
rvm_return_t retval 
)

◆ make_tid()

int_tid_t * make_tid ( rvm_mode_t  mode)

◆ make_uname()

void make_uname ( struct timeval *  new_uname)

◆ move_list_entry()

list_entry_t * move_list_entry ( list_entry_t fromptr,
list_entry_t toptr,
list_entry_t victim 
)

◆ round_time()

long round_time ( struct timeval *  x)

◆ rvm_add_length_to_offset()

rvm_offset_t rvm_add_length_to_offset ( rvm_offset_t offset,
rvm_length_t  length 
)

◆ rvm_add_offsets()

rvm_offset_t rvm_add_offsets ( rvm_offset_t x,
rvm_offset_t y 
)

◆ rvm_copy_options()

rvm_options_t * rvm_copy_options ( rvm_options_t rvm_options)

◆ rvm_copy_region()

rvm_region_t * rvm_copy_region ( rvm_region_t rvm_region)

◆ rvm_copy_statistics()

rvm_statistics_t * rvm_copy_statistics ( rvm_statistics_t rvm_statistics)

◆ rvm_copy_tid()

rvm_tid_t * rvm_copy_tid ( rvm_tid_t rvm_tid)

◆ rvm_free_options()

void rvm_free_options ( rvm_options_t rvm_options)

◆ rvm_free_region()

void rvm_free_region ( rvm_region_t rvm_region)

◆ rvm_free_statistics()

void rvm_free_statistics ( rvm_statistics_t rvm_statistics)

◆ rvm_free_tid()

void rvm_free_tid ( rvm_tid_t rvm_tid)

◆ rvm_init_options()

void rvm_init_options ( rvm_options_t rvm_options)

◆ rvm_init_region()

void rvm_init_region ( rvm_region_t rvm_region)

◆ rvm_init_statistics()

void rvm_init_statistics ( rvm_statistics_t rvm_statistics)

◆ rvm_init_tid()

void rvm_init_tid ( rvm_tid_t rvm_tid)

◆ rvm_malloc_options()

rvm_options_t * rvm_malloc_options ( void  )

◆ rvm_malloc_region()

rvm_region_t * rvm_malloc_region ( void  )

◆ rvm_malloc_statistics()

rvm_statistics_t * rvm_malloc_statistics ( void  )

◆ rvm_malloc_tid()

rvm_tid_t * rvm_malloc_tid ( void  )

◆ rvm_mk_offset()

rvm_offset_t rvm_mk_offset ( rvm_length_t  x,
rvm_length_t  y 
)

◆ rvm_mode()

char * rvm_mode ( rvm_mode_t  mode)

◆ rvm_page_mask()

rvm_length_t rvm_page_mask ( void  )

◆ rvm_page_size()

rvm_length_t rvm_page_size ( void  )

◆ rvm_return()

char * rvm_return ( rvm_return_t  code)

◆ rvm_rnd_offset_dn_to_page()

rvm_offset_t rvm_rnd_offset_dn_to_page ( rvm_offset_t x)

◆ rvm_rnd_offset_to_sector()

rvm_offset_t rvm_rnd_offset_to_sector ( rvm_offset_t x)

◆ rvm_rnd_offset_up_to_page()

rvm_offset_t rvm_rnd_offset_up_to_page ( rvm_offset_t x)

◆ rvm_sub_length_from_offset()

rvm_offset_t rvm_sub_length_from_offset ( rvm_offset_t offset,
rvm_length_t  length 
)

◆ rvm_sub_offsets()

rvm_offset_t rvm_sub_offsets ( rvm_offset_t x,
rvm_offset_t y 
)

◆ rvm_type()

char * rvm_type ( rvm_struct_id_t  id)

◆ rw_lock()

void rw_lock ( rw_lock_t rwl,
rw_lock_mode_t  mode 
)

◆ rw_unlock()

void rw_unlock ( rw_lock_t rwl,
rw_lock_mode_t  mode 
)

◆ src_aligned_bcopy()

void src_aligned_bcopy ( char *  src,
char *  dest,
rvm_length_t  len 
)

◆ sub_times()

struct timeval sub_times ( struct timeval *  x,
struct timeval *  y 
)

◆ tree_delete()

rvm_bool_t tree_delete ( tree_root_t tree,
tree_node_t node,
cmp_func_t cmp 
)

◆ tree_insert()

rvm_bool_t tree_insert ( tree_root_t tree,
tree_node_t node,
cmp_func_t cmp 
)

◆ tree_iterate_insert()

tree_node_t * tree_iterate_insert ( tree_root_t tree,
tree_node_t node,
cmp_func_t cmp 
)

◆ tree_lookup()

tree_node_t * tree_lookup ( tree_root_t tree,
tree_node_t node,
cmp_func_t cmp 
)

◆ tree_predecessor()

tree_node_t * tree_predecessor ( tree_root_t tree)

◆ tree_successor()

tree_node_t * tree_successor ( tree_root_t tree)

Variable Documentation

◆ cache_type_sizes

long cache_type_sizes[NUM_CACHE_TYPES] = { CACHE_TYPE_SIZES }

◆ free_lists

◆ free_lists_locks

RVM_MUTEX free_lists_locks[NUM_CACHE_TYPES]

◆ max_alloc

long max_alloc[NUM_CACHE_TYPES] = { MAX_ALLOCATED }

◆ page_mask

rvm_length_t page_mask
extern

◆ page_size

rvm_length_t page_size
extern

◆ pre_alloc

long pre_alloc[NUM_CACHE_TYPES] = { NUM_PRE_ALLOCATED }

◆ rvm_errmsg

char* rvm_errmsg
extern

◆ rvm_optimizations

rvm_length_t rvm_optimizations
extern

◆ type_counts

long type_counts[NUM_CACHE_TYPES]