diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-06-04 23:04:18 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-06-04 23:04:18 -0600 |
commit | d333027b3cd9ed0d62842c732acf641dd681f5d9 (patch) | |
tree | 474d6a4a204a8a2b3cd90bea78eb247c67edf3d6 | |
parent | 67aab484a523dfcbf32f4fc68ace2474ade96a5f (diff) |
objids and gen
-rw-r--r-- | pkg/btrfs/Makefile | 18 | ||||
-rw-r--r-- | pkg/btrfs/btrfsitem/items_gen.go | 2 | ||||
-rw-r--r-- | pkg/btrfs/internal/itemtype.go | 2 | ||||
-rw-r--r-- | pkg/btrfs/internal/objid.go | 150 | ||||
-rw-r--r-- | pkg/btrfs/internal_objid.go | 36 |
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 +) |