summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-06-04 23:04:18 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-06-04 23:04:18 -0600
commitd333027b3cd9ed0d62842c732acf641dd681f5d9 (patch)
tree474d6a4a204a8a2b3cd90bea78eb247c67edf3d6
parent67aab484a523dfcbf32f4fc68ace2474ade96a5f (diff)
objids and gen
-rw-r--r--pkg/btrfs/Makefile18
-rw-r--r--pkg/btrfs/btrfsitem/items_gen.go2
-rw-r--r--pkg/btrfs/internal/itemtype.go2
-rw-r--r--pkg/btrfs/internal/objid.go150
-rw-r--r--pkg/btrfs/internal_objid.go36
5 files changed, 133 insertions, 75 deletions
diff --git a/pkg/btrfs/Makefile b/pkg/btrfs/Makefile
index b29e033..33d3793 100644
--- a/pkg/btrfs/Makefile
+++ b/pkg/btrfs/Makefile
@@ -8,6 +8,8 @@ files += btrfsitem/items.txt
btrfsitem/items_gen.go: btrfsitem/items.txt $(MAKEFILE_LIST)
{ \
+ echo '// Code generated by Make. DO NOT EDIT.'; \
+ echo; \
echo 'package $(@D)'; \
echo 'import ('; \
echo '"reflect"'; \
@@ -26,6 +28,8 @@ files += btrfsitem/items_gen.go
internal/itemtype.go: btrfsitem/items.txt $(MAKEFILE_LIST)
{ \
+ echo '// Code generated by Make. DO NOT EDIT.'; \
+ echo; \
echo 'package $(@D)'; \
echo 'import "fmt"'; \
echo 'type ItemType uint8'; \
@@ -44,6 +48,20 @@ internal/itemtype.go: btrfsitem/items.txt $(MAKEFILE_LIST)
} | gofmt >$@
files += internal/itemtype.go
+internal_objid.go: internal/objid.go $(MAKEFILE_LIST)
+ { \
+ echo '// Code generated by Make. DO NOT EDIT.'; \
+ echo; \
+ echo 'package btrfs'; \
+ echo 'import ('; \
+ echo '"lukeshu.com/btrfs-tools/pkg/btrfs/internal"'; \
+ echo ')'; \
+ echo 'const('; \
+ sed -En 's/^\s*(\S*_OBJECTID)\s*=.*/\1 = internal.\1/p' <$<; \
+ echo ')'; \
+ } | gofmt >$@
+files += internal_objid.go
+
all: $(files)
.PHONY: all
diff --git a/pkg/btrfs/btrfsitem/items_gen.go b/pkg/btrfs/btrfsitem/items_gen.go
index 03faf8a..fc894d1 100644
--- a/pkg/btrfs/btrfsitem/items_gen.go
+++ b/pkg/btrfs/btrfsitem/items_gen.go
@@ -1,3 +1,5 @@
+// Code generated by Make. DO NOT EDIT.
+
package btrfsitem
import (
diff --git a/pkg/btrfs/internal/itemtype.go b/pkg/btrfs/internal/itemtype.go
index 90fb2a7..5a8c10f 100644
--- a/pkg/btrfs/internal/itemtype.go
+++ b/pkg/btrfs/internal/itemtype.go
@@ -1,3 +1,5 @@
+// Code generated by Make. DO NOT EDIT.
+
package internal
import "fmt"
diff --git a/pkg/btrfs/internal/objid.go b/pkg/btrfs/internal/objid.go
index c3b25f3..a53d61f 100644
--- a/pkg/btrfs/internal/objid.go
+++ b/pkg/btrfs/internal/objid.go
@@ -10,52 +10,52 @@ type ObjID uint64
const (
// The IDs of the various trees
- BTRFS_ROOT_TREE_OBJECTID = ObjID(1) // holds pointers to all of the tree roots
- BTRFS_EXTENT_TREE_OBJECTID = ObjID(2) // stores information about which extents are in use, and reference counts
- BTRFS_CHUNK_TREE_OBJECTID = ObjID(3) // chunk tree stores translations from logical -> physical block numbering
- BTRFS_DEV_TREE_OBJECTID = ObjID(4) // stores info about which areas of a given device are in use; one per device
- BTRFS_FS_TREE_OBJECTID = ObjID(5) // one per subvolume, storing files and directories
- BTRFS_ROOT_TREE_DIR_OBJECTID = ObjID(6) // directory objectid inside the root tree
- BTRFS_CSUM_TREE_OBJECTID = ObjID(7) // holds checksums of all the data extents
- BTRFS_QUOTA_TREE_OBJECTID = ObjID(8)
- BTRFS_UUID_TREE_OBJECTID = ObjID(9) // for storing items that use the BTRFS_UUID_*_KEY
- BTRFS_FREE_SPACE_TREE_OBJECTID = ObjID(10) // tracks free space in block groups.
- BTRFS_BLOCK_GROUP_TREE_OBJECTID = ObjID(11) // hold the block group items.
+ ROOT_TREE_OBJECTID = ObjID(1) // holds pointers to all of the tree roots
+ EXTENT_TREE_OBJECTID = ObjID(2) // stores information about which extents are in use, and reference counts
+ CHUNK_TREE_OBJECTID = ObjID(3) // chunk tree stores translations from logical -> physical block numbering
+ DEV_TREE_OBJECTID = ObjID(4) // stores info about which areas of a given device are in use; one per device
+ FS_TREE_OBJECTID = ObjID(5) // one per subvolume, storing files and directories
+ ROOT_TREE_DIR_OBJECTID = ObjID(6) // directory objectid inside the root tree
+ CSUM_TREE_OBJECTID = ObjID(7) // holds checksums of all the data extents
+ QUOTA_TREE_OBJECTID = ObjID(8)
+ UUID_TREE_OBJECTID = ObjID(9) // for storing items that use the UUID_*_KEY
+ FREE_SPACE_TREE_OBJECTID = ObjID(10) // tracks free space in block groups.
+ BLOCK_GROUP_TREE_OBJECTID = ObjID(11) // hold the block group items.
// Objects in the DEV_TREE
- BTRFS_DEV_STATS_OBJECTID = ObjID(0) // device stats in the device tree
+ DEV_STATS_OBJECTID = ObjID(0) // device stats in the device tree
// ???
- BTRFS_BALANCE_OBJECTID = ObjID(util.MaxUint64pp - 4) // for storing balance parameters in the root tree
- BTRFS_ORPHAN_OBJECTID = ObjID(util.MaxUint64pp - 5) // orphan objectid for tracking unlinked/truncated files
- BTRFS_TREE_LOG_OBJECTID = ObjID(util.MaxUint64pp - 6) // does write ahead logging to speed up fsyncs
- BTRFS_TREE_LOG_FIXUP_OBJECTID = ObjID(util.MaxUint64pp - 7)
- BTRFS_TREE_RELOC_OBJECTID = ObjID(util.MaxUint64pp - 8) // space balancing
- BTRFS_DATA_RELOC_TREE_OBJECTID = ObjID(util.MaxUint64pp - 9)
- BTRFS_EXTENT_CSUM_OBJECTID = ObjID(util.MaxUint64pp - 10) // extent checksums all have this objectid
- BTRFS_FREE_SPACE_OBJECTID = ObjID(util.MaxUint64pp - 11) // For storing free space cache
- BTRFS_FREE_INO_OBJECTID = ObjID(util.MaxUint64pp - 12) // stores the inode number for the free-ino cache
-
- BTRFS_MULTIPLE_OBJECTIDS = ObjID(util.MaxUint64pp - 255) // dummy objectid represents multiple objectids
+ BALANCE_OBJECTID = ObjID(util.MaxUint64pp - 4) // for storing balance parameters in the root tree
+ ORPHAN_OBJECTID = ObjID(util.MaxUint64pp - 5) // orphan objectid for tracking unlinked/truncated files
+ TREE_LOG_OBJECTID = ObjID(util.MaxUint64pp - 6) // does write ahead logging to speed up fsyncs
+ TREE_LOG_FIXUP_OBJECTID = ObjID(util.MaxUint64pp - 7)
+ TREE_RELOC_OBJECTID = ObjID(util.MaxUint64pp - 8) // space balancing
+ DATA_RELOC_TREE_OBJECTID = ObjID(util.MaxUint64pp - 9)
+ EXTENT_CSUM_OBJECTID = ObjID(util.MaxUint64pp - 10) // extent checksums all have this objectid
+ FREE_SPACE_OBJECTID = ObjID(util.MaxUint64pp - 11) // For storing free space cache
+ FREE_INO_OBJECTID = ObjID(util.MaxUint64pp - 12) // stores the inode number for the free-ino cache
+
+ MULTIPLE_OBJECTIDS = ObjID(util.MaxUint64pp - 255) // dummy objectid represents multiple objectids
// All files have objectids in this range.
- BTRFS_FIRST_FREE_OBJECTID = ObjID(256)
- BTRFS_LAST_FREE_OBJECTID = ObjID(util.MaxUint64pp - 256)
+ FIRST_FREE_OBJECTID = ObjID(256)
+ LAST_FREE_OBJECTID = ObjID(util.MaxUint64pp - 256)
- BTRFS_FIRST_CHUNK_TREE_OBJECTID = ObjID(256)
+ FIRST_CHUNK_TREE_OBJECTID = ObjID(256)
// Objects in the CHUNK_TREE
- BTRFS_DEV_ITEMS_OBJECTID = ObjID(1)
+ DEV_ITEMS_OBJECTID = ObjID(1)
// ???
- BTRFS_EMPTY_SUBVOL_DIR_OBJECTID = ObjID(2)
+ EMPTY_SUBVOL_DIR_OBJECTID = ObjID(2)
)
func (id ObjID) Format(typ ItemType) string {
switch typ {
case PERSISTENT_ITEM_KEY:
names := map[ObjID]string{
- BTRFS_DEV_STATS_OBJECTID: "DEV_STATS",
+ DEV_STATS_OBJECTID: "DEV_STATS",
}
if name, ok := names[id]; ok {
return name
@@ -71,18 +71,18 @@ func (id ObjID) Format(typ ItemType) string {
return fmt.Sprintf("0x%016x", uint64(id))
case DEV_ITEM_KEY:
names := map[ObjID]string{
- BTRFS_BALANCE_OBJECTID: "BALANCE",
- BTRFS_ORPHAN_OBJECTID: "ORPHAN",
- BTRFS_TREE_LOG_OBJECTID: "TREE_LOG",
- BTRFS_TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
- BTRFS_TREE_RELOC_OBJECTID: "TREE_RELOC",
- BTRFS_DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
- BTRFS_EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
- BTRFS_FREE_SPACE_OBJECTID: "FREE_SPACE",
- BTRFS_FREE_INO_OBJECTID: "FREE_INO",
- BTRFS_MULTIPLE_OBJECTIDS: "MULTIPLE",
-
- BTRFS_DEV_ITEMS_OBJECTID: "DEV_ITEMS",
+ BALANCE_OBJECTID: "BALANCE",
+ ORPHAN_OBJECTID: "ORPHAN",
+ TREE_LOG_OBJECTID: "TREE_LOG",
+ TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
+ TREE_RELOC_OBJECTID: "TREE_RELOC",
+ DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
+ EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
+ FREE_SPACE_OBJECTID: "FREE_SPACE",
+ FREE_INO_OBJECTID: "FREE_INO",
+ MULTIPLE_OBJECTIDS: "MULTIPLE",
+
+ DEV_ITEMS_OBJECTID: "DEV_ITEMS",
}
if name, ok := names[id]; ok {
return name
@@ -90,18 +90,18 @@ func (id ObjID) Format(typ ItemType) string {
return fmt.Sprintf("%d", int64(id))
case CHUNK_ITEM_KEY:
names := map[ObjID]string{
- BTRFS_BALANCE_OBJECTID: "BALANCE",
- BTRFS_ORPHAN_OBJECTID: "ORPHAN",
- BTRFS_TREE_LOG_OBJECTID: "TREE_LOG",
- BTRFS_TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
- BTRFS_TREE_RELOC_OBJECTID: "TREE_RELOC",
- BTRFS_DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
- BTRFS_EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
- BTRFS_FREE_SPACE_OBJECTID: "FREE_SPACE",
- BTRFS_FREE_INO_OBJECTID: "FREE_INO",
- BTRFS_MULTIPLE_OBJECTIDS: "MULTIPLE",
-
- BTRFS_FIRST_CHUNK_TREE_OBJECTID: "FIRST_CHUNK_TREE",
+ BALANCE_OBJECTID: "BALANCE",
+ ORPHAN_OBJECTID: "ORPHAN",
+ TREE_LOG_OBJECTID: "TREE_LOG",
+ TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
+ TREE_RELOC_OBJECTID: "TREE_RELOC",
+ DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
+ EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
+ FREE_SPACE_OBJECTID: "FREE_SPACE",
+ FREE_INO_OBJECTID: "FREE_INO",
+ MULTIPLE_OBJECTIDS: "MULTIPLE",
+
+ FIRST_CHUNK_TREE_OBJECTID: "FIRST_CHUNK_TREE",
}
if name, ok := names[id]; ok {
return name
@@ -109,28 +109,28 @@ func (id ObjID) Format(typ ItemType) string {
return fmt.Sprintf("%d", int64(id))
default:
names := map[ObjID]string{
- BTRFS_BALANCE_OBJECTID: "BALANCE",
- BTRFS_ORPHAN_OBJECTID: "ORPHAN",
- BTRFS_TREE_LOG_OBJECTID: "TREE_LOG",
- BTRFS_TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
- BTRFS_TREE_RELOC_OBJECTID: "TREE_RELOC",
- BTRFS_DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
- BTRFS_EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
- BTRFS_FREE_SPACE_OBJECTID: "FREE_SPACE",
- BTRFS_FREE_INO_OBJECTID: "FREE_INO",
- BTRFS_MULTIPLE_OBJECTIDS: "MULTIPLE",
-
- BTRFS_ROOT_TREE_OBJECTID: "ROOT_TREE",
- BTRFS_EXTENT_TREE_OBJECTID: "EXTENT_TREE",
- BTRFS_CHUNK_TREE_OBJECTID: "CHUNK_TREE",
- BTRFS_DEV_TREE_OBJECTID: "DEV_TREE",
- BTRFS_FS_TREE_OBJECTID: "FS_TREE",
- BTRFS_ROOT_TREE_DIR_OBJECTID: "ROOT_TREE_DIR",
- BTRFS_CSUM_TREE_OBJECTID: "CSUM_TREE",
- BTRFS_QUOTA_TREE_OBJECTID: "QUOTA_TREE",
- BTRFS_UUID_TREE_OBJECTID: "UUID_TREE",
- BTRFS_FREE_SPACE_TREE_OBJECTID: "FREE_SPACE_TREE",
- BTRFS_BLOCK_GROUP_TREE_OBJECTID: "BLOCK_GROUP_TREE",
+ BALANCE_OBJECTID: "BALANCE",
+ ORPHAN_OBJECTID: "ORPHAN",
+ TREE_LOG_OBJECTID: "TREE_LOG",
+ TREE_LOG_FIXUP_OBJECTID: "TREE_LOG_FIXUP",
+ TREE_RELOC_OBJECTID: "TREE_RELOC",
+ DATA_RELOC_TREE_OBJECTID: "DATA_RELOC_TREE",
+ EXTENT_CSUM_OBJECTID: "EXTENT_CSUM",
+ FREE_SPACE_OBJECTID: "FREE_SPACE",
+ FREE_INO_OBJECTID: "FREE_INO",
+ MULTIPLE_OBJECTIDS: "MULTIPLE",
+
+ ROOT_TREE_OBJECTID: "ROOT_TREE",
+ EXTENT_TREE_OBJECTID: "EXTENT_TREE",
+ CHUNK_TREE_OBJECTID: "CHUNK_TREE",
+ DEV_TREE_OBJECTID: "DEV_TREE",
+ FS_TREE_OBJECTID: "FS_TREE",
+ ROOT_TREE_DIR_OBJECTID: "ROOT_TREE_DIR",
+ CSUM_TREE_OBJECTID: "CSUM_TREE",
+ QUOTA_TREE_OBJECTID: "QUOTA_TREE",
+ UUID_TREE_OBJECTID: "UUID_TREE",
+ FREE_SPACE_TREE_OBJECTID: "FREE_SPACE_TREE",
+ BLOCK_GROUP_TREE_OBJECTID: "BLOCK_GROUP_TREE",
}
if name, ok := names[id]; ok {
return name
diff --git a/pkg/btrfs/internal_objid.go b/pkg/btrfs/internal_objid.go
new file mode 100644
index 0000000..c101eb6
--- /dev/null
+++ b/pkg/btrfs/internal_objid.go
@@ -0,0 +1,36 @@
+// Code generated by Make. DO NOT EDIT.
+
+package btrfs
+
+import (
+ "lukeshu.com/btrfs-tools/pkg/btrfs/internal"
+)
+
+const (
+ ROOT_TREE_OBJECTID = internal.ROOT_TREE_OBJECTID
+ EXTENT_TREE_OBJECTID = internal.EXTENT_TREE_OBJECTID
+ CHUNK_TREE_OBJECTID = internal.CHUNK_TREE_OBJECTID
+ DEV_TREE_OBJECTID = internal.DEV_TREE_OBJECTID
+ FS_TREE_OBJECTID = internal.FS_TREE_OBJECTID
+ ROOT_TREE_DIR_OBJECTID = internal.ROOT_TREE_DIR_OBJECTID
+ CSUM_TREE_OBJECTID = internal.CSUM_TREE_OBJECTID
+ QUOTA_TREE_OBJECTID = internal.QUOTA_TREE_OBJECTID
+ UUID_TREE_OBJECTID = internal.UUID_TREE_OBJECTID
+ FREE_SPACE_TREE_OBJECTID = internal.FREE_SPACE_TREE_OBJECTID
+ BLOCK_GROUP_TREE_OBJECTID = internal.BLOCK_GROUP_TREE_OBJECTID
+ DEV_STATS_OBJECTID = internal.DEV_STATS_OBJECTID
+ BALANCE_OBJECTID = internal.BALANCE_OBJECTID
+ ORPHAN_OBJECTID = internal.ORPHAN_OBJECTID
+ TREE_LOG_OBJECTID = internal.TREE_LOG_OBJECTID
+ TREE_LOG_FIXUP_OBJECTID = internal.TREE_LOG_FIXUP_OBJECTID
+ TREE_RELOC_OBJECTID = internal.TREE_RELOC_OBJECTID
+ DATA_RELOC_TREE_OBJECTID = internal.DATA_RELOC_TREE_OBJECTID
+ EXTENT_CSUM_OBJECTID = internal.EXTENT_CSUM_OBJECTID
+ FREE_SPACE_OBJECTID = internal.FREE_SPACE_OBJECTID
+ FREE_INO_OBJECTID = internal.FREE_INO_OBJECTID
+ FIRST_FREE_OBJECTID = internal.FIRST_FREE_OBJECTID
+ LAST_FREE_OBJECTID = internal.LAST_FREE_OBJECTID
+ FIRST_CHUNK_TREE_OBJECTID = internal.FIRST_CHUNK_TREE_OBJECTID
+ DEV_ITEMS_OBJECTID = internal.DEV_ITEMS_OBJECTID
+ EMPTY_SUBVOL_DIR_OBJECTID = internal.EMPTY_SUBVOL_DIR_OBJECTID
+)