![]() |
|
|||
0001 /* SPDX-License-Identifier: GPL-2.0-only */ 0002 /* 0003 * Copyright (c) 2000-2001 Christoph Hellwig. 0004 */ 0005 #ifndef _VXFS_OLT_H_ 0006 #define _VXFS_OLT_H_ 0007 0008 /* 0009 * Veritas filesystem driver - Object Location Table data structures. 0010 * 0011 * This file contains definitions for the Object Location Table used 0012 * by the Veritas Filesystem version 2 and newer. 0013 */ 0014 0015 0016 /* 0017 * OLT magic number (vxfs_olt->olt_magic). 0018 */ 0019 #define VXFS_OLT_MAGIC 0xa504FCF5 0020 0021 /* 0022 * VxFS OLT entry types. 0023 */ 0024 enum { 0025 VXFS_OLT_FREE = 1, 0026 VXFS_OLT_FSHEAD = 2, 0027 VXFS_OLT_CUT = 3, 0028 VXFS_OLT_ILIST = 4, 0029 VXFS_OLT_DEV = 5, 0030 VXFS_OLT_SB = 6 0031 }; 0032 0033 /* 0034 * VxFS OLT header. 0035 * 0036 * The Object Location Table header is placed at the beginning of each 0037 * OLT extent. It is used to fing certain filesystem-wide metadata, e.g. 0038 * the initial inode list, the fileset header or the device configuration. 0039 */ 0040 struct vxfs_olt { 0041 __fs32 olt_magic; /* magic number */ 0042 __fs32 olt_size; /* size of this entry */ 0043 __fs32 olt_checksum; /* checksum of extent */ 0044 __u32 __unused1; /* ??? */ 0045 __fs32 olt_mtime; /* time of last mod. (sec) */ 0046 __fs32 olt_mutime; /* time of last mod. (usec) */ 0047 __fs32 olt_totfree; /* free space in OLT extent */ 0048 __fs32 olt_extents[2]; /* addr of this extent, replica */ 0049 __fs32 olt_esize; /* size of this extent */ 0050 __fs32 olt_next[2]; /* addr of next extent, replica */ 0051 __fs32 olt_nsize; /* size of next extent */ 0052 __u32 __unused2; /* align to 8 byte boundary */ 0053 }; 0054 0055 /* 0056 * VxFS common OLT entry (on disk). 0057 */ 0058 struct vxfs_oltcommon { 0059 __fs32 olt_type; /* type of this record */ 0060 __fs32 olt_size; /* size of this record */ 0061 }; 0062 0063 /* 0064 * VxFS free OLT entry (on disk). 0065 */ 0066 struct vxfs_oltfree { 0067 __fs32 olt_type; /* type of this record */ 0068 __fs32 olt_fsize; /* size of this free record */ 0069 }; 0070 0071 /* 0072 * VxFS initial-inode list (on disk). 0073 */ 0074 struct vxfs_oltilist { 0075 __fs32 olt_type; /* type of this record */ 0076 __fs32 olt_size; /* size of this record */ 0077 __fs32 olt_iext[2]; /* initial inode list, replica */ 0078 }; 0079 0080 /* 0081 * Current Usage Table 0082 */ 0083 struct vxfs_oltcut { 0084 __fs32 olt_type; /* type of this record */ 0085 __fs32 olt_size; /* size of this record */ 0086 __fs32 olt_cutino; /* inode of current usage table */ 0087 __u8 __pad; /* unused, 8 byte align */ 0088 }; 0089 0090 /* 0091 * Inodes containing Superblock, Intent log and OLTs 0092 */ 0093 struct vxfs_oltsb { 0094 __fs32 olt_type; /* type of this record */ 0095 __fs32 olt_size; /* size of this record */ 0096 __fs32 olt_sbino; /* inode of superblock file */ 0097 __u32 __unused1; /* ??? */ 0098 __fs32 olt_logino[2]; /* inode of log file,replica */ 0099 __fs32 olt_oltino[2]; /* inode of OLT, replica */ 0100 }; 0101 0102 /* 0103 * Inode containing device configuration + it's replica 0104 */ 0105 struct vxfs_oltdev { 0106 __fs32 olt_type; /* type of this record */ 0107 __fs32 olt_size; /* size of this record */ 0108 __fs32 olt_devino[2]; /* inode of device config files */ 0109 }; 0110 0111 /* 0112 * Fileset header 0113 */ 0114 struct vxfs_oltfshead { 0115 __fs32 olt_type; /* type number */ 0116 __fs32 olt_size; /* size of this record */ 0117 __fs32 olt_fsino[2]; /* inodes of fileset header */ 0118 }; 0119 0120 #endif /* _VXFS_OLT_H_ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |