diff options
Diffstat (limited to 'pkg/btrfs/btrfsitem/item_blockgroup.go')
-rw-r--r-- | pkg/btrfs/btrfsitem/item_blockgroup.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pkg/btrfs/btrfsitem/item_blockgroup.go b/pkg/btrfs/btrfsitem/item_blockgroup.go new file mode 100644 index 0000000..162adb1 --- /dev/null +++ b/pkg/btrfs/btrfsitem/item_blockgroup.go @@ -0,0 +1,38 @@ +package btrfsitem + +import ( + "lukeshu.com/btrfs-tools/pkg/util" +) + +type BlockGroupFlags uint64 + +const ( + BLOCK_GROUP_DATA = BlockGroupFlags(1 << iota) + BLOCK_GROUP_SYSTEM + BLOCK_GROUP_METADATA + BLOCK_GROUP_RAID0 + BLOCK_GROUP_RAID1 + BLOCK_GROUP_DUP + BLOCK_GROUP_RAID10 + BLOCK_GROUP_RAID5 + BLOCK_GROUP_RAID6 + BLOCK_GROUP_RAID1C3 + BLOCK_GROUP_RAID1C4 +) + +var blockGroupFlagNames = []string{ + "DATA", + "SYSTEM", + "METADATA", + "RAID0", + "RAID1", + "DUP", + "RAID10", + "RAID5", + "RAID6", + "RAID1C3", + "RAID1C4", +} + +func (f BlockGroupFlags) Has(req BlockGroupFlags) bool { return f&req == req } +func (f BlockGroupFlags) String() string { return util.BitfieldString(f, blockGroupFlagNames) } |