Blame view

include/linux/minix_fs.h 2.01 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  #ifndef _LINUX_MINIX_FS_H
  #define _LINUX_MINIX_FS_H
4b7ae3427   Jaswinder Singh Rajput   headers_check fix...
3
  #include <linux/types.h>
e18fa700c   Jeff Garzik   Move several *_SU...
4
  #include <linux/magic.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  /*
   * 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
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
24
25
26
  #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)))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  
  /*
   * 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;
  };
939b00df0   Andries Brouwer   [PATCH] Minix V3 ...
75
76
77
78
  /*
   * V3 minix super-block data on disk
   */
  struct minix3_super_block {
f4fa27c16   Andries Brouwer   [PATCH] minix v3:...
79
  	__u32 s_ninodes;
939b00df0   Andries Brouwer   [PATCH] Minix V3 ...
80
81
82
83
84
85
86
87
88
89
90
91
92
  	__u16 s_pad0;
  	__u16 s_imap_blocks;
  	__u16 s_zmap_blocks;
  	__u16 s_firstdatazone;
  	__u16 s_log_zone_size;
  	__u16 s_pad1;
  	__u32 s_max_size;
  	__u32 s_zones;
  	__u16 s_magic;
  	__u16 s_pad2;
  	__u16 s_blocksize;
  	__u8  s_disk_version;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
93
94
95
96
  struct minix_dir_entry {
  	__u16 inode;
  	char name[0];
  };
939b00df0   Andries Brouwer   [PATCH] Minix V3 ...
97
98
99
100
  struct minix3_dir_entry {
  	__u32 inode;
  	char name[0];
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
101
  #endif