Back to home page

OSCL-LXR

 
 

    


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_ */