summaryrefslogtreecommitdiff
path: root/util-linux/mkfs_minix.c
diff options
context:
space:
mode:
authorDenis Vlasenko2007-01-03 00:43:19 +0000
committerDenis Vlasenko2007-01-03 00:43:19 +0000
commitaa95959cb81b72d37ce1f20606f97e064bbd2bfe (patch)
treecdc5e820c8363c08e6950d2ebae5dae904b4d2ee /util-linux/mkfs_minix.c
parent6dd392a2520ee226d8f8535c449454f4ed5a08a5 (diff)
downloadbusybox-aa95959cb81b72d37ce1f20606f97e064bbd2bfe.zip
busybox-aa95959cb81b72d37ce1f20606f97e064bbd2bfe.tar.gz
factor out minix structures/constants into minix.h
fsck_minix: optimizations
Diffstat (limited to 'util-linux/mkfs_minix.c')
-rw-r--r--util-linux/mkfs_minix.c75
1 files changed, 2 insertions, 73 deletions
diff --git a/util-linux/mkfs_minix.c b/util-linux/mkfs_minix.c
index 89874b6..e66ef7e 100644
--- a/util-linux/mkfs_minix.c
+++ b/util-linux/mkfs_minix.c
@@ -65,6 +65,8 @@
#include "busybox.h"
#include <mntent.h>
+#include "minix.h"
+
#define DEBUG 0
/* If debugging, store the very same times/uids/gids for image consistency */
@@ -78,81 +80,8 @@
# define GETGID getgid()
#endif
-/*
- * This is the original minix inode layout on disk.
- * Note the 8-bit gid and atime and ctime.
- */
-struct minix1_inode {
- uint16_t i_mode;
- uint16_t i_uid;
- uint32_t i_size;
- uint32_t i_time;
- uint8_t i_gid;
- uint8_t i_nlinks;
- uint16_t 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 {
- uint16_t i_mode;
- uint16_t i_nlinks;
- uint16_t i_uid;
- uint16_t i_gid;
- uint32_t i_size;
- uint32_t i_atime;
- uint32_t i_mtime;
- uint32_t i_ctime;
- uint32_t i_zone[10];
-};
-
-/*
- * minix super-block data on disk
- */
-struct minix_super_block {
- uint16_t s_ninodes;
- uint16_t s_nzones;
- uint16_t s_imap_blocks;
- uint16_t s_zmap_blocks;
- uint16_t s_firstdatazone;
- uint16_t s_log_zone_size;
- uint32_t s_max_size;
- uint16_t s_magic;
- uint16_t s_state;
- uint32_t s_zones;
-};
-
-struct minix_dir_entry {
- uint16_t inode;
- char name[0];
-};
-
-/* Believe it or not, but mount.h has this one */
-#undef BLOCK_SIZE
enum {
- BLOCK_SIZE = 1024,
- BITS_PER_BLOCK = BLOCK_SIZE << 3,
-
- MINIX_ROOT_INO = 1,
- MINIX_BAD_INO = 2,
MAX_GOOD_BLOCKS = 512,
-
- MINIX1_SUPER_MAGIC = 0x137F, /* original minix fs */
- MINIX1_SUPER_MAGIC2 = 0x138F, /* minix fs, 30 char names */
- MINIX2_SUPER_MAGIC = 0x2468, /* minix V2 fs */
- MINIX2_SUPER_MAGIC2 = 0x2478, /* minix V2 fs, 30 char names */
- MINIX_VALID_FS = 0x0001, /* clean fs */
- MINIX_ERROR_FS = 0x0002, /* fs has errors */
-
- INODE_SIZE1 = sizeof(struct minix1_inode),
- INODE_SIZE2 = sizeof(struct minix2_inode),
- MINIX1_INODES_PER_BLOCK = BLOCK_SIZE / sizeof(struct minix1_inode),
- MINIX2_INODES_PER_BLOCK = BLOCK_SIZE / sizeof(struct minix2_inode),
-
TEST_BUFFER_BLOCKS = 16,
};