(root)/
util-linux-2.39/
include/
minix.h
       1  /*
       2   * No copyright is claimed.  This code is in the public domain; do with
       3   * it what you wish.
       4   */
       5  #ifndef UTIL_LINUX_MINIX_H
       6  #define UTIL_LINUX_MINIX_H
       7  
       8  #include <stdint.h>
       9  
      10  struct minix_inode {
      11  	uint16_t i_mode;
      12  	uint16_t i_uid;
      13  	uint32_t i_size;
      14  	uint32_t i_time;
      15  	uint8_t  i_gid;
      16  	uint8_t  i_nlinks;
      17  	uint16_t i_zone[9];
      18  };
      19  
      20  struct minix2_inode {
      21  	uint16_t i_mode;
      22  	uint16_t i_nlinks;
      23  	uint16_t i_uid;
      24  	uint16_t i_gid;
      25  	uint32_t i_size;
      26  	uint32_t i_atime;
      27  	uint32_t i_mtime;
      28  	uint32_t i_ctime;
      29  	uint32_t i_zone[10];
      30  };
      31  
      32  struct minix_super_block {
      33  	uint16_t s_ninodes;
      34  	uint16_t s_nzones;
      35  	uint16_t s_imap_blocks;
      36  	uint16_t s_zmap_blocks;
      37  	uint16_t s_firstdatazone;
      38  	uint16_t s_log_zone_size;
      39  	uint32_t s_max_size;
      40  	uint16_t s_magic;
      41  	uint16_t s_state;
      42  	uint32_t s_zones;
      43  };
      44  
      45  /* V3 minix super-block data on disk */
      46  struct minix3_super_block {
      47  	uint32_t s_ninodes;
      48  	uint16_t s_pad0;
      49  	uint16_t s_imap_blocks;
      50  	uint16_t s_zmap_blocks;
      51  	uint16_t s_firstdatazone;
      52  	uint16_t s_log_zone_size;
      53  	uint16_t s_pad1;
      54  	uint32_t s_max_size;
      55  	uint32_t s_zones;
      56  	uint16_t s_magic;
      57  	uint16_t s_pad2;
      58  	uint16_t s_blocksize;
      59  	uint8_t  s_disk_version;
      60  };
      61  
      62  /*
      63   * Minix subpartitions are always within primary dos partition.
      64   */
      65  #define MINIX_MAXPARTITIONS  4
      66  
      67  #define MINIX_BLOCK_SIZE_BITS 10
      68  #define MINIX_BLOCK_SIZE     (1 << MINIX_BLOCK_SIZE_BITS)
      69  
      70  #define MINIX_NAME_MAX       255             /* # chars in a file name */
      71  #define MINIX_MAX_INODES     65535
      72  
      73  #define MINIX_INODES_PER_BLOCK ((MINIX_BLOCK_SIZE)/(sizeof (struct minix_inode)))
      74  #define MINIX2_INODES_PER_BLOCK ((MINIX_BLOCK_SIZE)/(sizeof (struct minix2_inode)))
      75  
      76  /* minix_super_block.s_state */
      77  #define MINIX_VALID_FS       0x0001          /* Clean fs. */
      78  #define MINIX_ERROR_FS       0x0002          /* fs has errors. */
      79  
      80  
      81  #define MINIX_SUPER_MAGIC    0x137F          /* minix V1 fs, 14 char names */
      82  #define MINIX_SUPER_MAGIC2   0x138F          /* minix V1 fs, 30 char names */
      83  
      84  #define MINIX2_SUPER_MAGIC   0x2468	     /* minix V2 fs, 14 char names */
      85  #define MINIX2_SUPER_MAGIC2  0x2478	     /* minix V2 fs, 30 char names */
      86  
      87  #define MINIX3_SUPER_MAGIC   0x4d5a          /* minix V3 fs (60 char names) */
      88  
      89  #endif /* UTIL_LINUX_MINIX_H */