Lines Matching refs:volume
69 * Per-volume storage limit: 52 bits 4096 TB
87 #define HAMMER_OFF_VOL_MASK 0x0FF0000000000000ULL /* volume portion */
109 * Reserved space for (future) header junk after the volume header.
120 * and volume number in addition to the offset. Most offsets are required
149 * zone 1 (z,v,o): raw volume relative (offset 0 is the volume header)
151 * zone 3 (z,o): undo/redo fifo - fixed zone-2 offset array in volume header
157 * zone 15: unavailable, usually the offset is beyond volume size
160 * Maximum HAMMER filesystem capacity from volume aspect
161 * 2^8(max volumes) * 2^52(max volume size) = 2^60 = 1EB (long offset)
173 * volume#0 layout
175 * | volume header (1928 bytes)
203 * volume#N layout (0<N<256)
205 * | volume header (1928 bytes)
216 * | ... (unused until volume#(N-1) runs out of space)
383 * zone:1 raw volume (no blockmap)
385 * zone:3 undomap (direct layer2 array in volume header)
412 * The freemap uses the upper 8 bits of layer-1 to identify the volume,
511 * HAMMER UNDO parameters. The UNDO fifo is mapped directly in the volume
549 * undo sequence space without having to rely on information from the volume
555 * (1) The volume header no longer needs to be synchronized for most
688 * Volume header types
694 * HAMMER Volume header
697 * device contains a volume header followed by however many buffers fit
698 * into the volume.
700 * One of the volumes making up a HAMMER filesystem is the root volume.
701 * The root volume is always volume #0 which is the first block device path
702 * specified by newfs_hammer(8). All HAMMER volumes have a volume header,
703 * however the root volume may be the only volume that has valid values for
710 * vol_buf_beg - offset of the first buffer in volume
711 * vol_buf_end - offset of volume EOF (on buffer boundary)
721 * volume to generate an actual I/O offset within the block device.
733 * initialize or add a new HAMMER volume.
751 int64_t vol_buf_beg; /* offset of the first buffer in volume */
752 int64_t vol_buf_end; /* offset of volume EOF (on buffer boundary) */
759 int32_t vol_no; /* volume number within filesystem */
764 uint32_t vol_flags; /* volume flags */
765 uint32_t vol_rootvol; /* the root volume number (must be 0) */
771 * volume making up a HAMMER filesystem, but only the root volume
799 #define HAMMER_VOLF_NEEDFLUSH 0x0004 /* volume needs flush */
823 #define hammer_xlate_to_phys(volume, zone2_offset) \
824 ((volume)->vol_buf_beg + HAMMER_OFF_SHORT_ENCODE(zone2_offset))
832 #define hammer_xlate_to_undo(volume
833 ((volume)->vol0_undo_array[HAMMER_UNDO_INDEX(zone3_offset)] + \
837 * Effective per-volume filesystem capacity including big-blocks for layer1/2
839 #define HAMMER_VOL_BUF_SIZE(volume) \
840 ((volume)->vol_buf_end - (volume)->vol_buf_beg)