summaryrefslogtreecommitdiff
path: root/pkg/btrfs/btrfsitem/item_blockgroup.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-06-04 22:53:09 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-06-04 22:53:09 -0600
commit67aab484a523dfcbf32f4fc68ace2474ade96a5f (patch)
tree64093a2d351b1b3c4a4b1612e39ee9de8a2bc7c4 /pkg/btrfs/btrfsitem/item_blockgroup.go
parent02fccc8c29d6f638efee0302868242d805bd7711 (diff)
more
Diffstat (limited to 'pkg/btrfs/btrfsitem/item_blockgroup.go')
-rw-r--r--pkg/btrfs/btrfsitem/item_blockgroup.go38
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) }