diff options
Diffstat (limited to 'pkg/btrfs/btrfsitem')
-rw-r--r-- | pkg/btrfs/btrfsitem/item_inoderef.go | 33 | ||||
-rw-r--r-- | pkg/btrfs/btrfsitem/items.txt | 2 | ||||
-rw-r--r-- | pkg/btrfs/btrfsitem/items_gen.go | 4 |
3 files changed, 6 insertions, 33 deletions
diff --git a/pkg/btrfs/btrfsitem/item_inoderef.go b/pkg/btrfs/btrfsitem/item_inoderef.go index 78dd677..2c26df6 100644 --- a/pkg/btrfs/btrfsitem/item_inoderef.go +++ b/pkg/btrfs/btrfsitem/item_inoderef.go @@ -4,36 +4,9 @@ import ( "lukeshu.com/btrfs-tools/pkg/binstruct" ) -type InodeRefList []InodeRef // INODE_REF=12 - -func (o *InodeRefList) UnmarshalBinary(dat []byte) (int, error) { - *o = nil - n := 0 - for n < len(dat) { - var ref InodeRef - _n, err := binstruct.Unmarshal(dat, &ref) - n += _n - if err != nil { - return n, err - } - *o = append(*o, ref) - } - return n, nil -} - -func (o InodeRefList) MarshalBinary() ([]byte, error) { - var ret []byte - for _, ref := range o { - bs, err := binstruct.Marshal(ref) - ret = append(ret, bs...) - if err != nil { - return ret, err - } - } - return ret, nil -} - -type InodeRef struct { +// key.objectid = inode number of the file +// key.offset = inode number of the parent file +type InodeRef struct { // INODE_REF=12 Index int64 `bin:"off=0x0, siz=0x8"` NameLen uint16 `bin:"off=0x8, siz=0x2"` // [ignored-when-writing] binstruct.End `bin:"off=0xa"` diff --git a/pkg/btrfs/btrfsitem/items.txt b/pkg/btrfs/btrfsitem/items.txt index 2820788..7898775 100644 --- a/pkg/btrfs/btrfsitem/items.txt +++ b/pkg/btrfs/btrfsitem/items.txt @@ -12,7 +12,7 @@ FREE_SPACE_BITMAP=200 FreeSpaceBitmap FREE_SPACE_EXTENT=199 Empty FREE_SPACE_INFO=198 FreeSpaceInfo INODE_ITEM=1 Inode -INODE_REF=12 InodeRefList +INODE_REF=12 InodeRef METADATA_ITEM=169 Metadata ORPHAN_ITEM=48 Empty PERSISTENT_ITEM=249 DevStats diff --git a/pkg/btrfs/btrfsitem/items_gen.go b/pkg/btrfs/btrfsitem/items_gen.go index 030202b..b5b64bd 100644 --- a/pkg/btrfs/btrfsitem/items_gen.go +++ b/pkg/btrfs/btrfsitem/items_gen.go @@ -55,7 +55,7 @@ var keytype2gotype = map[Type]reflect.Type{ FREE_SPACE_EXTENT_KEY: reflect.TypeOf(Empty{}), FREE_SPACE_INFO_KEY: reflect.TypeOf(FreeSpaceInfo{}), INODE_ITEM_KEY: reflect.TypeOf(Inode{}), - INODE_REF_KEY: reflect.TypeOf(InodeRefList{}), + INODE_REF_KEY: reflect.TypeOf(InodeRef{}), METADATA_ITEM_KEY: reflect.TypeOf(Metadata{}), ORPHAN_ITEM_KEY: reflect.TypeOf(Empty{}), PERSISTENT_ITEM_KEY: reflect.TypeOf(DevStats{}), @@ -89,7 +89,7 @@ func (FreeSpaceBitmap) isItem() {} func (FreeSpaceHeader) isItem() {} func (FreeSpaceInfo) isItem() {} func (Inode) isItem() {} -func (InodeRefList) isItem() {} +func (InodeRef) isItem() {} func (Metadata) isItem() {} func (Root) isItem() {} func (RootRef) isItem() {} |