64 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * efs_fs_sb.h4 *5 * Copyright (c) 1999 Al Smith6 *7 * Portions derived from IRIX header files (c) 1988 Silicon Graphics8 */9 10#ifndef __EFS_FS_SB_H__11#define __EFS_FS_SB_H__12 13#include <linux/types.h>14#include <linux/magic.h>15 16/* EFS superblock magic numbers */17#define EFS_MAGIC 0x07295918#define EFS_NEWMAGIC 0x07295a19 20#define IS_EFS_MAGIC(x) ((x == EFS_MAGIC) || (x == EFS_NEWMAGIC))21 22#define EFS_SUPER 123#define EFS_ROOTINODE 224 25/* efs superblock on disk */26struct efs_super {27 __be32 fs_size; /* size of filesystem, in sectors */28 __be32 fs_firstcg; /* bb offset to first cg */29 __be32 fs_cgfsize; /* size of cylinder group in bb's */30 __be16 fs_cgisize; /* bb's of inodes per cylinder group */31 __be16 fs_sectors; /* sectors per track */32 __be16 fs_heads; /* heads per cylinder */33 __be16 fs_ncg; /* # of cylinder groups in filesystem */34 __be16 fs_dirty; /* fs needs to be fsck'd */35 __be32 fs_time; /* last super-block update */36 __be32 fs_magic; /* magic number */37 char fs_fname[6]; /* file system name */38 char fs_fpack[6]; /* file system pack name */39 __be32 fs_bmsize; /* size of bitmap in bytes */40 __be32 fs_tfree; /* total free data blocks */41 __be32 fs_tinode; /* total free inodes */42 __be32 fs_bmblock; /* bitmap location. */43 __be32 fs_replsb; /* Location of replicated superblock. */44 __be32 fs_lastialloc; /* last allocated inode */45 char fs_spare[20]; /* space for expansion - MUST BE ZERO */46 __be32 fs_checksum; /* checksum of volume portion of fs */47};48 49/* efs superblock information in memory */50struct efs_sb_info {51 __u32 fs_magic; /* superblock magic number */52 __u32 fs_start; /* first block of filesystem */53 __u32 first_block; /* first data block in filesystem */54 __u32 total_blocks; /* total number of blocks in filesystem */55 __u32 group_size; /* # of blocks a group consists of */ 56 __u32 data_free; /* # of free data blocks */57 __u32 inode_free; /* # of free inodes */58 __u16 inode_blocks; /* # of blocks used for inodes in every grp */59 __u16 total_groups; /* # of groups */60};61 62#endif /* __EFS_FS_SB_H__ */63 64