summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/btrfs/btrfsitem/item_blockgroup.go9
-rw-r--r--pkg/btrfs/btrfsitem/items.txt1
-rw-r--r--pkg/btrfs/btrfsitem/items_gen.go3
-rw-r--r--pkg/btrfs/internal/itemtype.go2
4 files changed, 15 insertions, 0 deletions
diff --git a/pkg/btrfs/btrfsitem/item_blockgroup.go b/pkg/btrfs/btrfsitem/item_blockgroup.go
index 162adb1..565aae8 100644
--- a/pkg/btrfs/btrfsitem/item_blockgroup.go
+++ b/pkg/btrfs/btrfsitem/item_blockgroup.go
@@ -1,9 +1,18 @@
package btrfsitem
import (
+ "lukeshu.com/btrfs-tools/pkg/binstruct"
+ "lukeshu.com/btrfs-tools/pkg/btrfs/internal"
"lukeshu.com/btrfs-tools/pkg/util"
)
+type BlockGroup struct { // BLOCK_GROUP_ITEM=192
+ Used int64 `bin:"off=0, siz=8"`
+ ChunkObjectID internal.ObjID `bin:"off=8, siz=8"`
+ Flags BlockGroupFlags `bin:"off=16, siz=8"`
+ binstruct.End `bin:"off=24"`
+}
+
type BlockGroupFlags uint64
const (
diff --git a/pkg/btrfs/btrfsitem/items.txt b/pkg/btrfs/btrfsitem/items.txt
index 0cca6df..5e9a17d 100644
--- a/pkg/btrfs/btrfsitem/items.txt
+++ b/pkg/btrfs/btrfsitem/items.txt
@@ -1,3 +1,4 @@
+BLOCK_GROUP_ITEM=192 BlockGroup
CHUNK_ITEM=228 Chunk
DEV_ITEM=216 Dev
DEV_EXTENT=204 DevExtent
diff --git a/pkg/btrfs/btrfsitem/items_gen.go b/pkg/btrfs/btrfsitem/items_gen.go
index fc894d1..8c51875 100644
--- a/pkg/btrfs/btrfsitem/items_gen.go
+++ b/pkg/btrfs/btrfsitem/items_gen.go
@@ -9,6 +9,7 @@ import (
)
const (
+ BLOCK_GROUP_ITEM_KEY = internal.BLOCK_GROUP_ITEM_KEY
CHUNK_ITEM_KEY = internal.CHUNK_ITEM_KEY
DEV_ITEM_KEY = internal.DEV_ITEM_KEY
DEV_EXTENT_KEY = internal.DEV_EXTENT_KEY
@@ -33,6 +34,7 @@ const (
)
var keytype2gotype = map[Type]reflect.Type{
+ BLOCK_GROUP_ITEM_KEY: reflect.TypeOf(BlockGroup{}),
CHUNK_ITEM_KEY: reflect.TypeOf(Chunk{}),
DEV_ITEM_KEY: reflect.TypeOf(Dev{}),
DEV_EXTENT_KEY: reflect.TypeOf(DevExtent{}),
@@ -56,6 +58,7 @@ var keytype2gotype = map[Type]reflect.Type{
UUID_RECEIVED_SUBVOL_KEY: reflect.TypeOf(UUIDMap{}),
}
+func (BlockGroup) isItem() {}
func (Chunk) isItem() {}
func (Dev) isItem() {}
func (DevExtent) isItem() {}
diff --git a/pkg/btrfs/internal/itemtype.go b/pkg/btrfs/internal/itemtype.go
index 5a8c10f..7f16889 100644
--- a/pkg/btrfs/internal/itemtype.go
+++ b/pkg/btrfs/internal/itemtype.go
@@ -7,6 +7,7 @@ import "fmt"
type ItemType uint8
const (
+ BLOCK_GROUP_ITEM_KEY = ItemType(192)
CHUNK_ITEM_KEY = ItemType(228)
DEV_ITEM_KEY = ItemType(216)
DEV_EXTENT_KEY = ItemType(204)
@@ -32,6 +33,7 @@ const (
func (t ItemType) String() string {
names := map[ItemType]string{
+ BLOCK_GROUP_ITEM_KEY: "BLOCK_GROUP_ITEM",
CHUNK_ITEM_KEY: "CHUNK_ITEM",
DEV_ITEM_KEY: "DEV_ITEM",
DEV_EXTENT_KEY: "DEV_EXTENT",