1 /* BLURB lgpl 2 3 Coda File System 4 Release 5 5 6 Copyright (c) 1987-1999 Carnegie Mellon University 7 Additional copyrights listed below 8 9 This code is distributed "AS IS" without warranty of any kind under 10 the terms of the GNU Library General Public Licence Version 2, as 11 shown in the file LICENSE. The technical and financial contributors to 12 Coda are listed in the file CREDITS. 13 14 Additional copyrights 15 none currently 16 17 #*/ 18 19 /* 20 * Segment Loader public definitions 21 */ 22 23 #ifndef _RVM_SEGMENT_H_ 24 #define _RVM_SEGMENT_H_ 25 26 #include <rvm/rvm.h> 27 28 /* taken from rvm_segment_private.h */ 29 #define RVM_SEGMENT_HDR_SIZE RVM_PAGE_SIZE /* length of segment header */ 30 31 /* region definition descriptor */ 32 typedef struct 33 { 34 rvm_offset_t offset; /* region's offset in segment */ 35 rvm_length_t length; /* region length */ 36 char *vmaddr; /* mapping address for region */ 37 } 38 rvm_region_def_t; 39 40 /* initializer for region definition descriptor */ 41 #define RVM_INIT_REGION(region,off,len,addr) \ 42 (region).length = (len); \ 43 (region).vmaddr = (addr); \ 44 (region).offset = (off); 45 46 /* error code for damaged segment header */ 47 #define RVM_ESEGMENT_HDR 2000 48 49 /* define regions within a segment for segement loader */ 50 extern rvm_return_t rvm_create_segment ( 51 char *DevName, /* pointer to data device name */ 52 rvm_offset_t DevLength, /* Length of dataDev if really a device */ 53 rvm_options_t *options, /* options record for RVM */ 54 rvm_length_t nregions, /* number of regions defined for segment*/ 55 rvm_region_def_t *region_defs /* array of region defs for segment */ 56 ); 57 58 /* load regions of a segment */ 59 extern rvm_return_t rvm_load_segment ( 60 char *DevName, /* pointer to data device name */ 61 rvm_offset_t DevLength, /* Length of dataDev if really a device */ 62 rvm_options_t *options, /* options record for RVM */ 63 unsigned long *nregions, /* returned -- number of regions mapped */ 64 rvm_region_def_t *regions[] /* returned array of region descriptors */ 65 ); 66 67 /* release regions of a segment */ 68 extern rvm_return_t rvm_release_segment ( 69 unsigned long nregions, /* number of regions mapped */ 70 rvm_region_def_t **regions /* array of region descriptors */ 71 ); 72 73 #endif /* _RVM_SEGMENT_H_ */ 74