Coda Distributed File System
rvm_segment.h
Go to the documentation of this file.
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
9This code is distributed "AS IS" without warranty of any kind under
10the terms of the GNU Library General Public Licence Version 2, as
11shown in the file LICENSE. The technical and financial contributors to
12Coda 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 */
32typedef struct {
33 rvm_offset_t offset; /* region's offset in segment */
34 rvm_length_t length; /* region length */
35 char *vmaddr; /* mapping address for region */
37
38/* initializer for region definition descriptor */
39#define RVM_INIT_REGION(region, off, len, addr) \
40 (region).length = (len); \
41 (region).vmaddr = (addr); \
42 (region).offset = (off);
43
44/* error code for damaged segment header */
45#define RVM_ESEGMENT_HDR 2000
46
47/* define regions within a segment for segement loader */
49 char *DevName, /* pointer to data device name */
50 rvm_offset_t DevLength, /* Length of dataDev if really a device */
51 rvm_options_t *options, /* options record for RVM */
52 rvm_length_t nregions, /* number of regions defined for segment*/
53 rvm_region_def_t *region_defs /* array of region defs for segment */
54);
55
56/* load regions of a segment */
58 char *DevName, /* pointer to data device name */
59 rvm_offset_t DevLength, /* Length of dataDev if really a device */
60 rvm_options_t *options, /* options record for RVM */
61 unsigned long *nregions, /* returned -- number of regions mapped */
62 rvm_region_def_t *regions[] /* returned array of region descriptors */
63);
64
65/* release regions of a segment */
67rvm_release_segment(unsigned long nregions, /* number of regions mapped */
68 rvm_region_def_t **regions /* array of region descriptors */
69);
70
71#endif /* _RVM_SEGMENT_H_ */
rvm_return_t rvm_load_segment(char *DevName, rvm_offset_t DevLength, rvm_options_t *options, unsigned long *nregions, rvm_region_def_t *regions[])
rvm_return_t rvm_release_segment(unsigned long nregions, rvm_region_def_t **regions)
Definition: rvm_releaseseg.c:27
rvm_return_t rvm_create_segment(char *DevName, rvm_offset_t DevLength, rvm_options_t *options, rvm_length_t nregions, rvm_region_def_t *region_defs)
int rvm_return_t
Definition: rvm.h:94
unsigned long rvm_length_t
Definition: rvm.h:140
Definition: rvm.h:145
Definition: rvm.h:269
Definition: rvm_segment.h:32
char * vmaddr
Definition: rvm_segment.h:35
rvm_offset_t offset
Definition: rvm_segment.h:33
rvm_length_t length
Definition: rvm_segment.h:34
rvm_options_t * options
Definition: testrvm.c:33