Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
freevxfs
vxfs_olt.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2000-2001 Christoph Hellwig.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions, and the following disclaimer,
10
* without modification.
11
* 2. The name of the author may not be used to endorse or promote products
12
* derived from this software without specific prior written permission.
13
*
14
* Alternatively, this software may be distributed under the terms of the
15
* GNU General Public License ("GPL").
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
21
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
*/
30
#ifndef _VXFS_OLT_H_
31
#define _VXFS_OLT_H_
32
33
/*
34
* Veritas filesystem driver - Object Location Table data structures.
35
*
36
* This file contains definitions for the Object Location Table used
37
* by the Veritas Filesystem version 2 and newer.
38
*/
39
40
41
/*
42
* OLT magic number (vxfs_olt->olt_magic).
43
*/
44
#define VXFS_OLT_MAGIC 0xa504FCF5
45
46
/*
47
* VxFS OLT entry types.
48
*/
49
enum
{
50
VXFS_OLT_FREE
= 1,
51
VXFS_OLT_FSHEAD
= 2,
52
VXFS_OLT_CUT
= 3,
53
VXFS_OLT_ILIST
= 4,
54
VXFS_OLT_DEV
= 5,
55
VXFS_OLT_SB
= 6
56
};
57
58
/*
59
* VxFS OLT header.
60
*
61
* The Object Location Table header is placed at the beginning of each
62
* OLT extent. It is used to fing certain filesystem-wide metadata, e.g.
63
* the initial inode list, the fileset header or the device configuration.
64
*/
65
struct
vxfs_olt
{
66
u_int32_t
olt_magic
;
/* magic number */
67
u_int32_t
olt_size
;
/* size of this entry */
68
u_int32_t
olt_checksum
;
/* checksum of extent */
69
u_int32_t
__unused1
;
/* ??? */
70
u_int32_t
olt_mtime
;
/* time of last mod. (sec) */
71
u_int32_t
olt_mutime
;
/* time of last mod. (usec) */
72
u_int32_t
olt_totfree
;
/* free space in OLT extent */
73
vx_daddr_t
olt_extents
[2];
/* addr of this extent, replica */
74
u_int32_t
olt_esize
;
/* size of this extent */
75
vx_daddr_t
olt_next
[2];
/* addr of next extent, replica */
76
u_int32_t
olt_nsize
;
/* size of next extent */
77
u_int32_t
__unused2
;
/* align to 8 byte boundary */
78
};
79
80
/*
81
* VxFS common OLT entry (on disk).
82
*/
83
struct
vxfs_oltcommon
{
84
u_int32_t
olt_type
;
/* type of this record */
85
u_int32_t
olt_size
;
/* size of this record */
86
};
87
88
/*
89
* VxFS free OLT entry (on disk).
90
*/
91
struct
vxfs_oltfree
{
92
u_int32_t
olt_type
;
/* type of this record */
93
u_int32_t
olt_fsize
;
/* size of this free record */
94
};
95
96
/*
97
* VxFS initial-inode list (on disk).
98
*/
99
struct
vxfs_oltilist
{
100
u_int32_t
olt_type
;
/* type of this record */
101
u_int32_t
olt_size
;
/* size of this record */
102
vx_ino_t
olt_iext
[2];
/* initial inode list, replica */
103
};
104
105
/*
106
* Current Usage Table
107
*/
108
struct
vxfs_oltcut
{
109
u_int32_t
olt_type
;
/* type of this record */
110
u_int32_t
olt_size
;
/* size of this record */
111
vx_ino_t
olt_cutino
;
/* inode of current usage table */
112
u_int32_t
__pad
;
/* unused, 8 byte align */
113
};
114
115
/*
116
* Inodes containing Superblock, Intent log and OLTs
117
*/
118
struct
vxfs_oltsb
{
119
u_int32_t
olt_type
;
/* type of this record */
120
u_int32_t
olt_size
;
/* size of this record */
121
vx_ino_t
olt_sbino
;
/* inode of superblock file */
122
u_int32_t
__unused1
;
/* ??? */
123
vx_ino_t
olt_logino
[2];
/* inode of log file,replica */
124
vx_ino_t
olt_oltino
[2];
/* inode of OLT, replica */
125
};
126
127
/*
128
* Inode containing device configuration + it's replica
129
*/
130
struct
vxfs_oltdev
{
131
u_int32_t
olt_type
;
/* type of this record */
132
u_int32_t
olt_size
;
/* size of this record */
133
vx_ino_t
olt_devino
[2];
/* inode of device config files */
134
};
135
136
/*
137
* Fileset header
138
*/
139
struct
vxfs_oltfshead
{
140
u_int32_t
olt_type
;
/* type number */
141
u_int32_t
olt_size
;
/* size of this record */
142
vx_ino_t
olt_fsino
[2];
/* inodes of fileset header */
143
};
144
145
#endif
/* _VXFS_OLT_H_ */
Generated on Thu Jan 10 2013 14:47:05 for Linux Kernel by
1.8.2