The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/freevxfs/vxfs_olt.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 #ident "$Id: vxfs_olt.h,v 1.5 2001/04/25 18:11:23 hch Exp hch $"
   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_ */

Cache object: b25c0bd363e14ea2a9a8b4dfd03543b8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.