]>
git.ipfire.org Git - thirdparty/util-linux.git/blob - disk-utils/minix_programs.h
1 #ifndef UTIL_LINUX_MINIX_PROGRAMS_H
2 #define UTIL_LINUX_MINIX_PROGRAMS_H
10 extern char *super_block_buffer
;
12 #define Super (*(struct minix_super_block *) super_block_buffer)
13 #define Super3 (*(struct minix3_super_block *) super_block_buffer)
15 #define INODE_SIZE (sizeof(struct minix_inode))
16 #define INODE2_SIZE (sizeof(struct minix2_inode))
18 #define BITS_PER_BLOCK (MINIX_BLOCK_SIZE << 3)
20 #define UPPER(size,n) ((size+((n)-1))/(n))
25 static inline unsigned long get_ninodes(void)
29 return Super3
.s_ninodes
;
31 return Super
.s_ninodes
;
35 static inline unsigned long get_nzones(void)
39 return Super3
.s_zones
;
43 return Super
.s_nzones
;
47 static inline unsigned long get_nimaps(void)
51 return Super3
.s_imap_blocks
;
53 return Super
.s_imap_blocks
;
57 static inline unsigned long get_nzmaps(void)
61 return Super3
.s_zmap_blocks
;
63 return Super
.s_zmap_blocks
;
67 static inline off_t
get_first_zone(void)
71 return Super3
.s_firstdatazone
;
73 return Super
.s_firstdatazone
;
77 static inline size_t get_zone_size(void)
81 return Super3
.s_log_zone_size
;
83 return Super
.s_log_zone_size
;
87 static inline size_t get_max_size(void)
91 return Super3
.s_max_size
;
93 return Super
.s_max_size
;
97 static inline unsigned long inode_blocks(void)
102 return UPPER(get_ninodes(), MINIX2_INODES_PER_BLOCK
);
104 return UPPER(get_ninodes(), MINIX_INODES_PER_BLOCK
);
108 static inline off_t
first_zone_data(void)
110 return 2 + get_nimaps() + get_nzmaps() + inode_blocks();
113 static inline size_t get_inode_buffer_size(void)
115 return inode_blocks() * MINIX_BLOCK_SIZE
;
118 #endif /* UTIL_LINUX_MINIX_PROGRAMS_H */