Lines Matching +full:4 +full:kb
76 * are always 64KB. Logical file buffers are typically 16KB. All data
85 * to optimize storage efficiency. The minimum fragment size is 1KB.
94 * A full indirect block use supports 512 x 128-byte blockrefs in a 64KB
95 * buffer. Indirect blocks down to 1KB are supported to keep small
99 * using 64KB indirect blocks (128 byte refs, 512 or radix 9 per indblk).
128 * HAMMER2_SEGSIZE - Allocation map segment size, typically 4MB
163 * Inodes embed either 512 bytes of direct data or an array of 4 blockrefs,
165 * <= 512KB. Up to 4 directory entries can be referenced from a directory
168 * Indirect blocks are typically either 4KB (64 blockrefs / ~4MB represented),
169 * or 64KB (1024 blockrefs / ~64MB represented).
171 #define HAMMER2_SET_RADIX 2 /* radix 2 = 4 entries */
189 * A 4MB segment is reserved at the beginning of each 2GB zone. This segment
191 * table, and possibly other information in the future. A 4MB segment for
194 * 4MB = 64 x 64K blocks. Each 4MB segment is broken down as follows:
201 * 4 level4 FREEMAP_NODE (256 x 128B indirect block per 16PB)
202 * 5 level5 FREEMAP_NODE (256 x 128B indirect block per 4EB)
247 * Note that each FREEMAP_LEAF or FREEMAP_NODE uses 32KB out of 64KB slot.
261 * 16PB and 4EB indirect map. The volume header itself has a set of 4 freemap
265 * The Level 0 64KB block represents 1GB of storage represented by 32KB
266 * (256 x struct hammer2_bmap_data). Each structure represents 4MB of storage
267 * and has a 512 bit bitmap, using 2 bits to represent a 16KB chunk of
275 * One important thing to note here is that the freemap resolution is 16KB,
276 * but the minimum storage allocation size is 1KB. The hammer2 vfs keeps
278 * the entire 16KB of a partially allocated block will be considered fully
293 * (i.e. a multiple of 4MB). VOLUME_ALIGN must be >= ZONE_SEG.
313 #define HAMMER2_ZONE_SEG (4 * 1024 * 1024)
362 #define HAMMER2_ZONEFM_LEVEL5 4 /* 4EB indmap */
363 /* LEVEL6 is a set of 4 blockrefs in the volume header 16EB */
366 * Freemap radix. Assumes a set-count of 4, 128-byte blockrefs,
367 * 32KB indirect block for freemap (LEVELN_PSIZE below).
369 * Leaf entry represents 4MB of storage broken down into a 512-bit
370 * bitmap, 2-bits per entry. So course bitmap item represents 16KB.
372 #if HAMMER2_SET_COUNT != 4
373 #error "hammer2_disk.h - freemap assumes SET_COUNT is 4"
376 #define HAMMER2_FREEMAP_LEVEL5_RADIX 62 /* 4EB */
381 #define HAMMER2_FREEMAP_LEVEL0_RADIX 22 /* 4MB (128by in l-1 leaf) */
417 * 16KB bitmap granularity (x2 bits per entry).
448 * Two linear areas can be reserved after the initial 4MB segment in the base
492 * minimum allocation chunk size is 1KB (a radix of 10), so HAMMER2 sets
493 * HAMMER2_RADIX_MIN to 10. The maximum radix is currently 16 (64KB), but
596 uint8_t unused0C[4];
757 #define HAMMER2_BREF_TYPE_DIRENT 4
771 #define HAMMER2_ENC_CHECK(n) (((n) & 15) << 4)
772 #define HAMMER2_DEC_CHECK(n) (((n) >> 4) & 15)
780 #define HAMMER2_CHECK_SHA192 4
796 #define HAMMER2_ENC_LEVEL(n) ((n) << 4)
797 #define HAMMER2_DEC_LEVEL(n) (((n) >> 4) & 15)
806 #define HAMMER2_COMP_STRINGS_COUNT 4
815 * HAMMER2 block references are collected into sets of 4 blockrefs. These
822 * entries pointing to different copies of the same data. Up to 4 copies
835 * Indirect blocks are typically 4KB (64 entres) or 64KB (1024 entries) and
861 * a LEVEL0 (4MB) block of storage. The storage is managed in 256 x 16KB
869 * linear - A BYTE linear allocation offset used for sub-16KB allocations
870 * only. May contain values between 0 and 4MB. Must be ignored
871 * if 16KB-aligned (i.e. force bitmap scan), otherwise may be
872 * used to sub-allocate within the 16KB block (which is already
875 * Sub-allocations need only be 1KB-aligned and do not have to be
876 * size-aligned, and 16KB or larger allocations do not update this
881 * desire to support sector sizes up to 16KB (so H2 only issues
882 * I/O's in multiples of 16KB anyway).
892 * bitmap - Two bits per 16KB allocation block arranged in arrays of
893 * 64-bit elements, 256x2 bits representing ~4MB worth of media
912 uint32_t reserved20[8]; /* 20-3F 256 bits manages 128K/1KB/2-bits */
913 /* 40-7F 512 bits manages 4MB of storage */
1076 #define HAMMER2_OBJTYPE_FIFO 4
1093 * The low 4 bits specify the current active type while the high 4 bits
1095 * If the upper 4 bits are not zero it may effect how a PFS is used during
1134 #define HAMMER2_PFS_DEC_TRANSITION(n) (((n) >> 4) & 0x0F)
1135 #define HAMMER2_PFS_ENC_TRANSITION(n) (((n) & 0x0F) << 4)
1157 * Note that the minimum chunk size is 1KB so we could theoretically have
1288 * icrc_sects[7] - First 512-4 bytes of volume header (including all
1295 * icrc_sects[4] - Sector 3
1296 * icrc_sects[3] - Sector 4 (the freemap blockset)
1354 * The whole volume block (64KB) has an iCRC covering all but the last 4 bytes,
1367 #define HAMMER2_VOLUME_ICRC0_SIZE (512 - 4)
1369 #define HAMMER2_VOLUME_ICRCVH_SIZE (65536 - 4)
1375 #define HAMMER2_NUM_VOLHDRS 4