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/minix_fs.h | |
| download | olio-linux-3.10-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.tar.xz olio-linux-3.10-1da177e4c3f41524e886b7f1b8a0c1fc7321cac2.zip  | |
Linux-2.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/minix_fs.h')
| -rw-r--r-- | include/linux/minix_fs.h | 85 | 
1 files changed, 85 insertions, 0 deletions
diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h new file mode 100644 index 00000000000..1ecc3cc8cef --- /dev/null +++ b/include/linux/minix_fs.h @@ -0,0 +1,85 @@ +#ifndef _LINUX_MINIX_FS_H +#define _LINUX_MINIX_FS_H + +/* + * The minix filesystem constants/structures + */ + +/* + * Thanks to Kees J Bot for sending me the definitions of the new + * minix filesystem (aka V2) with bigger inodes and 32-bit block + * pointers. + */ + +#define MINIX_ROOT_INO 1 + +/* Not the same as the bogus LINK_MAX in <linux/limits.h>. Oh well. */ +#define MINIX_LINK_MAX	250 +#define MINIX2_LINK_MAX	65530 + +#define MINIX_I_MAP_SLOTS	8 +#define MINIX_Z_MAP_SLOTS	64 +#define MINIX_SUPER_MAGIC	0x137F		/* original minix fs */ +#define MINIX_SUPER_MAGIC2	0x138F		/* minix fs, 30 char names */ +#define MINIX2_SUPER_MAGIC	0x2468		/* minix V2 fs */ +#define MINIX2_SUPER_MAGIC2	0x2478		/* minix V2 fs, 30 char names */ +#define MINIX_VALID_FS		0x0001		/* Clean fs. */ +#define MINIX_ERROR_FS		0x0002		/* fs has errors. */ + +#define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode))) +#define MINIX2_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix2_inode))) + +/* + * This is the original minix inode layout on disk. + * Note the 8-bit gid and atime and ctime. + */ +struct minix_inode { +	__u16 i_mode; +	__u16 i_uid; +	__u32 i_size; +	__u32 i_time; +	__u8  i_gid; +	__u8  i_nlinks; +	__u16 i_zone[9]; +}; + +/* + * The new minix inode has all the time entries, as well as + * long block numbers and a third indirect block (7+1+1+1 + * instead of 7+1+1). Also, some previously 8-bit values are + * now 16-bit. The inode is now 64 bytes instead of 32. + */ +struct minix2_inode { +	__u16 i_mode; +	__u16 i_nlinks; +	__u16 i_uid; +	__u16 i_gid; +	__u32 i_size; +	__u32 i_atime; +	__u32 i_mtime; +	__u32 i_ctime; +	__u32 i_zone[10]; +}; + +/* + * minix super-block data on disk + */ +struct minix_super_block { +	__u16 s_ninodes; +	__u16 s_nzones; +	__u16 s_imap_blocks; +	__u16 s_zmap_blocks; +	__u16 s_firstdatazone; +	__u16 s_log_zone_size; +	__u32 s_max_size; +	__u16 s_magic; +	__u16 s_state; +	__u32 s_zones; +}; + +struct minix_dir_entry { +	__u16 inode; +	char name[0]; +}; + +#endif  |