minix_fs.h
001: #ifndef _LINUX_MINIX_FS_H
002: #define _LINUX_MINIX_FS_H
003:
004: #include <linux/types.h>
005: #include <linux/magic.h>
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017: #define MINIX_ROOT_INO 1
018:
019:
020: #define MINIX_LINK_MAX 250
021: #define MINIX2_LINK_MAX 65530
022:
023: #define MINIX_I_MAP_SLOTS 8
024: #define MINIX_Z_MAP_SLOTS 64
025: #define MINIX_VALID_FS 0x0001
026: #define MINIX_ERROR_FS 0x0002
027:
028: #define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode)))
029:
030:
031:
032:
033:
034: struct minix_inode {
035: __u16 i_mode;
036: __u16 i_uid;
037: __u32 i_size;
038: __u32 i_time;
039: __u8 i_gid;
040: __u8 i_nlinks;
041: __u16 i_zone[9];
042: };
043:
044:
045:
046:
047:
048:
049:
050: struct minix2_inode {
051: __u16 i_mode;
052: __u16 i_nlinks;
053: __u16 i_uid;
054: __u16 i_gid;
055: __u32 i_size;
056: __u32 i_atime;
057: __u32 i_mtime;
058: __u32 i_ctime;
059: __u32 i_zone[10];
060: };
061:
062:
063:
064:
065: struct minix_super_block {
066: __u16 s_ninodes;
067: __u16 s_nzones;
068: __u16 s_imap_blocks;
069: __u16 s_zmap_blocks;
070: __u16 s_firstdatazone;
071: __u16 s_log_zone_size;
072: __u32 s_max_size;
073: __u16 s_magic;
074: __u16 s_state;
075: __u32 s_zones;
076: };
077:
078:
079:
080:
081: struct minix3_super_block {
082: __u32 s_ninodes;
083: __u16 s_pad0;
084: __u16 s_imap_blocks;
085: __u16 s_zmap_blocks;
086: __u16 s_firstdatazone;
087: __u16 s_log_zone_size;
088: __u16 s_pad1;
089: __u32 s_max_size;
090: __u32 s_zones;
091: __u16 s_magic;
092: __u16 s_pad2;
093: __u16 s_blocksize;
094: __u8 s_disk_version;
095: };
096:
097: struct minix_dir_entry {
098: __u16 inode;
099: char name[0];
100: };
101:
102: struct minix3_dir_entry {
103: __u32 inode;
104: char name[0];
105: };
106: #endif
107:
© Andrew Scott 2006 -
2025,
All Rights Reserved