diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/linux/bfs_fs.h | |
download | lwn-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.tar.gz lwn-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.zip |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/linux/bfs_fs.h')
-rw-r--r-- | include/linux/bfs_fs.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/include/linux/bfs_fs.h b/include/linux/bfs_fs.h new file mode 100644 index 000000000000..f7f0913cd110 --- /dev/null +++ b/include/linux/bfs_fs.h @@ -0,0 +1,79 @@ +/* + * include/linux/bfs_fs.h - BFS data structures on disk. + * Copyright (C) 1999 Tigran Aivazian <tigran@veritas.com> + */ + +#ifndef _LINUX_BFS_FS_H +#define _LINUX_BFS_FS_H + +#define BFS_BSIZE_BITS 9 +#define BFS_BSIZE (1<<BFS_BSIZE_BITS) + +#define BFS_MAGIC 0x1BADFACE +#define BFS_ROOT_INO 2 +#define BFS_INODES_PER_BLOCK 8 + +/* SVR4 vnode type values (bfs_inode->i_vtype) */ +#define BFS_VDIR 2 +#define BFS_VREG 1 + +/* BFS inode layout on disk */ +struct bfs_inode { + __u16 i_ino; + __u16 i_unused; + __u32 i_sblock; + __u32 i_eblock; + __u32 i_eoffset; + __u32 i_vtype; + __u32 i_mode; + __s32 i_uid; + __s32 i_gid; + __u32 i_nlink; + __u32 i_atime; + __u32 i_mtime; + __u32 i_ctime; + __u32 i_padding[4]; +}; + +#define BFS_NAMELEN 14 +#define BFS_DIRENT_SIZE 16 +#define BFS_DIRS_PER_BLOCK 32 + +struct bfs_dirent { + __u16 ino; + char name[BFS_NAMELEN]; +}; + +/* BFS superblock layout on disk */ +struct bfs_super_block { + __u32 s_magic; + __u32 s_start; + __u32 s_end; + __s32 s_from; + __s32 s_to; + __s32 s_bfrom; + __s32 s_bto; + char s_fsname[6]; + char s_volume[6]; + __u32 s_padding[118]; +}; + +#define BFS_NZFILESIZE(ip) \ + (((ip)->i_eoffset + 1) - (ip)->i_sblock * BFS_BSIZE) + +#define BFS_FILESIZE(ip) \ + ((ip)->i_sblock == 0 ? 0 : BFS_NZFILESIZE(ip)) + +#define BFS_FILEBLOCKS(ip) \ + ((ip)->i_sblock == 0 ? 0 : ((ip)->i_eblock + 1) - (ip)->i_sblock) + +#define BFS_OFF2INO(offset) \ + ((((offset) - BFS_BSIZE) / sizeof(struct bfs_inode)) + BFS_ROOT_INO) + +#define BFS_INO2OFF(ino) \ + ((__u32)(((ino) - BFS_ROOT_INO) * sizeof(struct bfs_inode)) + BFS_BSIZE) + +#define BFS_UNCLEAN(bfs_sb, sb) \ + ((bfs_sb->s_from != -1) && (bfs_sb->s_to != -1) && !(sb->s_flags & MS_RDONLY)) + +#endif /* _LINUX_BFS_FS_H */ |