OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [fs/] [freevxfs/] [vxfs_olt.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
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
#ident "$Id: vxfs_olt.h,v 1.1.1.1 2004-04-15 01:11:44 phoenix Exp $"
34
 
35
/*
36
 * Veritas filesystem driver - Object Location Table data structures.
37
 *
38
 * This file contains definitions for the Object Location Table used
39
 * by the Veritas Filesystem version 2 and newer.
40
 */
41
 
42
 
43
/*
44
 * OLT magic number (vxfs_olt->olt_magic).
45
 */
46
#define VXFS_OLT_MAGIC          0xa504FCF5
47
 
48
/*
49
 * VxFS OLT entry types.
50
 */
51
enum {
52
        VXFS_OLT_FREE   = 1,
53
        VXFS_OLT_FSHEAD = 2,
54
        VXFS_OLT_CUT    = 3,
55
        VXFS_OLT_ILIST  = 4,
56
        VXFS_OLT_DEV    = 5,
57
        VXFS_OLT_SB     = 6
58
};
59
 
60
/*
61
 * VxFS OLT header.
62
 *
63
 * The Object Location Table header is placed at the beginning of each
64
 * OLT extent.  It is used to fing certain filesystem-wide metadata, e.g.
65
 * the inital inode list, the fileset header or the device configuration.
66
 */
67
struct vxfs_olt {
68
        u_int32_t       olt_magic;      /* magic number                 */
69
        u_int32_t       olt_size;       /* size of this entry           */
70
        u_int32_t       olt_checksum;   /* checksum of extent           */
71
        u_int32_t       __unused1;      /* ???                          */
72
        u_int32_t       olt_mtime;      /* time of last mod. (sec)      */
73
        u_int32_t       olt_mutime;     /* time of last mod. (usec)     */
74
        u_int32_t       olt_totfree;    /* free space in OLT extent     */
75
        vx_daddr_t      olt_extents[2]; /* addr of this extent, replica */
76
        u_int32_t       olt_esize;      /* size of this extent          */
77
        vx_daddr_t      olt_next[2];    /* addr of next extent, replica */
78
        u_int32_t       olt_nsize;      /* size of next extent          */
79
        u_int32_t       __unused2;      /* align to 8 byte boundary     */
80
};
81
 
82
/*
83
 * VxFS common OLT entry (on disk).
84
 */
85
struct vxfs_oltcommon {
86
        u_int32_t       olt_type;       /* type of this record          */
87
        u_int32_t       olt_size;       /* size of this record          */
88
};
89
 
90
/*
91
 * VxFS free OLT entry (on disk).
92
 */
93
struct vxfs_oltfree {
94
        u_int32_t       olt_type;       /* type of this record          */
95
        u_int32_t       olt_fsize;      /* size of this free record     */
96
};
97
 
98
/*
99
 * VxFS initial-inode list (on disk).
100
 */
101
struct vxfs_oltilist {
102
        u_int32_t       olt_type;       /* type of this record          */
103
        u_int32_t       olt_size;       /* size of this record          */
104
        vx_ino_t        olt_iext[2];    /* initial inode list, replica  */
105
};
106
 
107
/*
108
 * Current Usage Table
109
 */
110
struct vxfs_oltcut {
111
        u_int32_t       olt_type;       /* type of this record          */
112
        u_int32_t       olt_size;       /* size of this record          */
113
        vx_ino_t        olt_cutino;     /* inode of current usage table */
114
        u_int32_t       __pad;          /* unused, 8 byte align         */
115
};
116
 
117
/*
118
 * Inodes containing Superblock, Intent log and OLTs
119
 */
120
struct vxfs_oltsb {
121
        u_int32_t       olt_type;       /* type of this record          */
122
        u_int32_t       olt_size;       /* size of this record          */
123
        vx_ino_t        olt_sbino;      /* inode of superblock file     */
124
        u_int32_t       __unused1;      /* ???                          */
125
        vx_ino_t        olt_logino[2];  /* inode of log file,replica    */
126
        vx_ino_t        olt_oltino[2];  /* inode of OLT, replica        */
127
};
128
 
129
/*
130
 * Inode containing device configuration + it's replica
131
 */
132
struct vxfs_oltdev {
133
        u_int32_t       olt_type;       /* type of this record          */
134
        u_int32_t       olt_size;       /* size of this record          */
135
        vx_ino_t        olt_devino[2];  /* inode of device config files */
136
};
137
 
138
/*
139
 * Fileset header
140
 */
141
struct vxfs_oltfshead {
142
        u_int32_t       olt_type;       /* type number                  */
143
        u_int32_t       olt_size;       /* size of this record          */
144
        vx_ino_t        olt_fsino[2];   /* inodes of fileset header     */
145
};
146
 
147
#endif /* _VXFS_OLT_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.