brintos

brintos / linux-shallow public Read only

0
0
Text · 3.0 KiB · 53afba0 Raw
121 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2000-2001 Christoph Hellwig.4 */5#ifndef _VXFS_OLT_H_6#define _VXFS_OLT_H_7 8/*9 * Veritas filesystem driver - Object Location Table data structures.10 *11 * This file contains definitions for the Object Location Table used12 * by the Veritas Filesystem version 2 and newer.13 */14 15 16/*17 * OLT magic number (vxfs_olt->olt_magic).18 */19#define VXFS_OLT_MAGIC		0xa504FCF520 21/*22 * VxFS OLT entry types.23 */24enum {25	VXFS_OLT_FREE	= 1,26	VXFS_OLT_FSHEAD	= 2,27	VXFS_OLT_CUT	= 3,28	VXFS_OLT_ILIST	= 4,29	VXFS_OLT_DEV	= 5,30	VXFS_OLT_SB	= 631};32 33/*34 * VxFS OLT header.35 *36 * The Object Location Table header is placed at the beginning of each37 * OLT extent.  It is used to fing certain filesystem-wide metadata, e.g.38 * the initial inode list, the fileset header or the device configuration.39 */40struct vxfs_olt {41	__fs32		olt_magic;	/* magic number			*/42	__fs32		olt_size;	/* size of this entry		*/43	__fs32		olt_checksum;	/* checksum of extent		*/44	__u32		__unused1;	/* ???				*/45	__fs32		olt_mtime;	/* time of last mod. (sec)	*/46	__fs32		olt_mutime;	/* time of last mod. (usec)	*/47	__fs32		olt_totfree;	/* free space in OLT extent	*/48	__fs32		olt_extents[2];	/* addr of this extent, replica	*/49	__fs32		olt_esize;	/* size of this extent		*/50	__fs32		olt_next[2];    /* addr of next extent, replica	*/51	__fs32		olt_nsize;	/* size of next extent		*/52	__u32		__unused2;	/* align to 8 byte boundary	*/53};54 55/*56 * VxFS common OLT entry (on disk).57 */58struct vxfs_oltcommon {59	__fs32		olt_type;	/* type of this record		*/60	__fs32		olt_size;	/* size of this record		*/61};62 63/*64 * VxFS free OLT entry (on disk).65 */66struct vxfs_oltfree {67	__fs32		olt_type;	/* type of this record		*/68	__fs32		olt_fsize;	/* size of this free record	*/69};70 71/*72 * VxFS initial-inode list (on disk).73 */74struct vxfs_oltilist {75	__fs32	olt_type;	/* type of this record		*/76	__fs32	olt_size;	/* size of this record		*/77	__fs32		olt_iext[2];	/* initial inode list, replica	*/78};79 80/*81 * Current Usage Table 82 */83struct vxfs_oltcut {84	__fs32		olt_type;	/* type of this record		*/85	__fs32		olt_size;	/* size of this record		*/86	__fs32		olt_cutino;	/* inode of current usage table	*/87	__u8		__pad;		/* unused, 8 byte align		*/88};89 90/*91 * Inodes containing Superblock, Intent log and OLTs 92 */93struct vxfs_oltsb {94	__fs32		olt_type;	/* type of this record		*/95	__fs32		olt_size;	/* size of this record		*/96	__fs32		olt_sbino;	/* inode of superblock file	*/97	__u32		__unused1;	/* ???				*/98	__fs32		olt_logino[2];	/* inode of log file,replica	*/99	__fs32		olt_oltino[2];	/* inode of OLT, replica	*/100};101 102/*103 * Inode containing device configuration + it's replica 104 */105struct vxfs_oltdev {106	__fs32		olt_type;	/* type of this record		*/107	__fs32		olt_size;	/* size of this record		*/108	__fs32		olt_devino[2];	/* inode of device config files	*/109};110 111/*112 * Fileset header 113 */114struct vxfs_oltfshead {115	__fs32		olt_type;	/* type number			*/116	__fs32		olt_size;	/* size of this record		*/117	__fs32		olt_fsino[2];   /* inodes of fileset header	*/118};119 120#endif /* _VXFS_OLT_H_ */121