Rearranged tag encodings, reserved suptype=0 for internal tags

This was motivated by a discussion with a gh user, in which it was noted
that not having a reserved suptype for internal tags risks potential
issues with long-term future tag compatibility.

I think the risk is low, but, without a reserved suptype, it _is_
possible for a future tag to conflict with an internal tag in an older
driver version, potentially and unintentionally breaking compatibility.
Note this is especially concerning during mdir compactions, where we
copy tags we may not understand otherwise.

In littlefs2 we reserved suptype=0x100, though this was mostly an
accident due to saturating the 3-bit suptype space. With the larger tag
space in littlefs3, the reserved suptype=0x100 was dropped.

---

Long story short, this reserves suptype=0 for internal flags (well, and
null, which is _mostly_ internal only, but does get written to disk as
unreachable tags).

Unfortunately, adding a new suptype _did_ require moving a bunch of
stuff around:

  LFS3_TAG_NULL           0x0000  v--- ---- +--- ----
  LFS3_TAG_INTERNAL       0x00tt  v--- ---- +ttt tttt

  LFS3_TAG_CONFIG         0x01tt  v--- ---1 +ttt tttt
  LFS3_TAG_MAGIC          0x0131  v--- ---1 +-11 --rr
  LFS3_TAG_VERSION        0x0134  v--- ---1 +-11 -1--
  LFS3_TAG_RCOMPAT        0x0135  v--- ---1 +-11 -1-1
  LFS3_TAG_WCOMPAT        0x0136  v--- ---1 +-11 -11-
  LFS3_TAG_OCOMPAT        0x0137  v--- ---1 +-11 -111
  LFS3_TAG_GEOMETRY       0x0138  v--- ---1 +-11 1---
  LFS3_TAG_NAMELIMIT      0x0139  v--- ---1 +-11 1--1
  LFS3_TAG_FILELIMIT      0x013a  v--- ---1 +-11 1-1-
  LFS3_TAG_ATTRLIMIT?     0x013b  v--- ---1 +-11 1-11

  LFS3_TAG_GDELTA         0x02tt  v--- --1- +ttt tttt
  LFS3_TAG_GRMDELTA       0x0230  v--- --1- +-11 ----
  LFS3_TAG_GBMAPDELTA     0x0234  v--- --1- +-11 -1rr
  LFS3_TAG_GDDTREEDELTA*  0x0238  v--- --1- +-11 1-rr
  LFS3_TAG_GPTREEDELTA*   0x023c  v--- --1- +-11 11rr

  LFS3_TAG_NAME           0x03tt  v--- --11 +ttt tttt
  LFS3_TAG_BNAME          0x0300  v--- --11 +--- ----
  LFS3_TAG_REG            0x0301  v--- --11 +--- ---1
  LFS3_TAG_DIR            0x0302  v--- --11 +--- --1-
  LFS3_TAG_STICKYNOTE     0x0303  v--- --11 +--- --11
  LFS3_TAG_BOOKMARK       0x0304  v--- --11 +--- -1--
  LFS3_TAG_SYMLINK?       0x0305  v--- --11 +--- -1-1
  LFS3_TAG_SNAPSHOT?      0x0306  v--- --11 +--- -11-
  LFS3_TAG_MNAME          0x0330  v--- --11 +-11 ----
  LFS3_TAG_DDNAME*        0x0350  v--- --11 +1-1 ----
  LFS3_TAG_DDTOMB*        0x0351  v--- --11 +1-1 ---1

  LFS3_TAG_STRUCT         0x04tt  v--- -1-- +ttt tttt
  LFS3_TAG_BRANCH         0x040r  v--- -1-- +--- --rr
  LFS3_TAG_DATA           0x0404  v--- -1-- +--- -1--
  LFS3_TAG_BLOCK          0x0408  v--- -1-- +--- 1err
  LFS3_TAG_DDKEY*         0x0410  v--- -1-- +--1 ----
  LFS3_TAG_DID            0x0420  v--- -1-- +-1- ----
  LFS3_TAG_BSHRUB         0x0428  v--- -1-- +-1- 1---
  LFS3_TAG_BTREE          0x042c  v--- -1-- +-1- 11rr
  LFS3_TAG_MROOT          0x0431  v--- -1-- +-11 --rr
  LFS3_TAG_MDIR           0x0435  v--- -1-- +-11 -1rr
  LFS3_TAG_MSHRUB+        0x0438  v--- -1-- +-11 1---
  LFS3_TAG_MTREE          0x043c  v--- -1-- +-11 11rr
  LFS3_TAG_BMRANGE        0x044u  v--- -1-- +1-- ++uu
  LFS3_TAG_BMFREE         0x0440  v--- -1-- +1-- ----
  LFS3_TAG_BMINUSE        0x0441  v--- -1-- +1-- ---1
  LFS3_TAG_BMERASED       0x0442  v--- -1-- +1-- --1-
  LFS3_TAG_BMBAD          0x0443  v--- -1-- +1-- --11
  LFS3_TAG_DDRC*          0x0450  v--- -1-- +1-1 ----
  LFS3_TAG_DDPCOEFF*      0x0451  v--- -1-- +1-1 ---1
  LFs3_TAG_PCOEFFMAP*     0x0460  v--- -1-- +11- ----

  LFS3_TAG_ATTR           0x06aa  v--- -11a +aaa aaaa
  LFS3_TAG_UATTR          0x06aa  v--- -11- +aaa aaaa
  LFS3_TAG_SATTR          0x07aa  v--- -111 +aaa aaaa

  LFS3_TAG_SHRUB          0x1kkk  v--1 kkkk +kkk kkkk
  LFS3_TAG_ALT            0x4kkk  v1cd kkkk +kkk kkkk

  LFS3_TAG_CKSUM          0x300p  v-11 ---- ++++ +pqq
  LFS3_TAG_NOTE           0x3100  v-11 ---1 ++++ ++++
  LFS3_TAG_ECKSUM         0x3200  v-11 --1- ++++ ++++
  LFS3_TAG_GCKSUMDELTA    0x3300  v-11 --11 ++++ ++++

  * Planned
  + Reserved
  ? Hypothetical

Some additional notes:

- I was on the fence on keeping the 0x30 prefix on config tags now that
  it is not longer needed to differentiate from null, but ultimately
  decided to keep it because: 1. it's fun, 2. it decreases the chance
  of false positives, 3. it keeps the redund bits readable in hexdumps,
  and 4. it reserves some tags < config, which is useful since order
  matters.

  Instead, I pushed the 0x30 prefix to _more_ tags, mainly gstate.

  As a coincidence, meta related tags (MNAME, MROOT, MRTREE) all shifted
  to also have the 0x30 prefix, which is a nice bit of unexpected
  consistency.

- I also considered reserving the redund bits across the config tags
  similarly to what we've done in struct/gstate tags, but decided
  against it as 1. it significantly reduces the config tag space
  available, and 2. makes alignment with VERSION + R/W/OCOMPAT a bit
  awkward.

  Instead I think would should relax the redund bit alignment in other
  suptypes, though in practice the intermixing of non-redund and redund
  tags makes this a bit difficult.

  Maybe we should consider including redund bits as a hint for things
  like DATA? DDKEY? BSHRUB? etc?

- I created a bit more space for file btree struct tags, allowing for
  both the future planned DDKEY, and BLOCK with optional erased-bit. We
  don't currently use this, but it may be useful for the future planned
  gddtree, which in-theory can track erased-state in partially written
  file blocks.

  Currently tracking erased-state in file blocks is difficult due to
  the potential of multiple references, and inability to prevent ecksum
  conflicts in raw data blocks.

- UATTR/SATTR bumped up to 0x600/0x700 to keep the 1-bit alignment,
  leaving the suptype 0x500 unused. Though this may be useful if we ever
  run out of struct tags (suptype=0x400), which is likely where most new
  tags will go.

---

Code changes were minimal, but with a bunch of noise:

                 code          stack          ctx
  before:       35912           2280          660
  after:        35920 (+0.0%)   2280 (+0.0%)  660 (+0.0%)

                 code          stack          ctx
  gbmap before: 38800           2296          772
  gbmap after:  38812 (+0.0%)   2296 (+0.0%)  772 (+0.0%)
This commit is contained in:
Christopher Haster
2025-11-16 01:46:16 -06:00
parent d9adbc9ca1
commit cf34ba9aca
8 changed files with 313 additions and 306 deletions
+47 -47
View File
@@ -756,58 +756,58 @@ enum lfs3_tag {
LFS3_TAG_NULL = 0x0000, LFS3_TAG_NULL = 0x0000,
// config tags // config tags
LFS3_TAG_CONFIG = 0x0000, LFS3_TAG_CONFIG = 0x0100,
LFS3_TAG_MAGIC = 0x0031, LFS3_TAG_MAGIC = 0x0131,
LFS3_TAG_VERSION = 0x0034, LFS3_TAG_VERSION = 0x0134,
LFS3_TAG_RCOMPAT = 0x0035, LFS3_TAG_RCOMPAT = 0x0135,
LFS3_TAG_WCOMPAT = 0x0036, LFS3_TAG_WCOMPAT = 0x0136,
LFS3_TAG_OCOMPAT = 0x0037, LFS3_TAG_OCOMPAT = 0x0137,
LFS3_TAG_GEOMETRY = 0x0038, LFS3_TAG_GEOMETRY = 0x0138,
LFS3_TAG_NAMELIMIT = 0x0039, LFS3_TAG_NAMELIMIT = 0x0139,
LFS3_TAG_FILELIMIT = 0x003a, LFS3_TAG_FILELIMIT = 0x013a,
// in-device only, to help find unknown config tags // in-device only, to help find unknown config tags
LFS3_tag_UNKNOWNCONFIG = 0x003b, LFS3_tag_UNKNOWNCONFIG = 0x013b,
// global-state tags // global-state tags
LFS3_TAG_GDELTA = 0x0100, LFS3_TAG_GDELTA = 0x0200,
LFS3_TAG_GRMDELTA = 0x0100, LFS3_TAG_GRMDELTA = 0x0230,
LFS3_TAG_GBMAPDELTA = 0x0104, LFS3_TAG_GBMAPDELTA = 0x0234,
// name tags // name tags
LFS3_TAG_NAME = 0x0200, LFS3_TAG_NAME = 0x0300,
LFS3_TAG_BNAME = 0x0200, LFS3_TAG_BNAME = 0x0300,
LFS3_TAG_REG = 0x0201, LFS3_TAG_REG = 0x0301,
LFS3_TAG_DIR = 0x0202, LFS3_TAG_DIR = 0x0302,
LFS3_TAG_STICKYNOTE = 0x0203, LFS3_TAG_STICKYNOTE = 0x0303,
LFS3_TAG_BOOKMARK = 0x0204, LFS3_TAG_BOOKMARK = 0x0304,
// in-device only name tags, these should never get written to disk // in-device only name tags, these should never get written to disk
LFS3_tag_ORPHAN = 0x0205, LFS3_tag_ORPHAN = 0x0305,
LFS3_tag_TRV = 0x0206, LFS3_tag_TRV = 0x0306,
LFS3_tag_UNKNOWN = 0x0207, LFS3_tag_UNKNOWN = 0x0307,
// non-file name tags // non-file name tags
LFS3_TAG_MNAME = 0x0220, LFS3_TAG_MNAME = 0x0330,
// struct tags // struct tags
LFS3_TAG_STRUCT = 0x0300, LFS3_TAG_STRUCT = 0x0400,
LFS3_TAG_BRANCH = 0x0300, LFS3_TAG_BRANCH = 0x0400,
LFS3_TAG_DATA = 0x0304, LFS3_TAG_DATA = 0x0404,
LFS3_TAG_BLOCK = 0x0308, LFS3_TAG_BLOCK = 0x0408,
LFS3_TAG_DID = 0x0314, LFS3_TAG_DID = 0x0420,
LFS3_TAG_BSHRUB = 0x0318, LFS3_TAG_BSHRUB = 0x0428,
LFS3_TAG_BTREE = 0x031c, LFS3_TAG_BTREE = 0x042c,
LFS3_TAG_MROOT = 0x0321, LFS3_TAG_MROOT = 0x0431,
LFS3_TAG_MDIR = 0x0325, LFS3_TAG_MDIR = 0x0435,
LFS3_TAG_MTREE = 0x032c, LFS3_TAG_MTREE = 0x043c,
LFS3_TAG_BMRANGE = 0x0330, LFS3_TAG_BMRANGE = 0x0440,
LFS3_TAG_BMFREE = 0x0330, LFS3_TAG_BMFREE = 0x0440,
LFS3_TAG_BMINUSE = 0x0331, LFS3_TAG_BMINUSE = 0x0441,
LFS3_TAG_BMERASED = 0x0332, LFS3_TAG_BMERASED = 0x0442,
LFS3_TAG_BMBAD = 0x0333, LFS3_TAG_BMBAD = 0x0443,
// user/sys attributes // user/sys attributes
LFS3_TAG_ATTR = 0x0400, LFS3_TAG_ATTR = 0x0600,
LFS3_TAG_UATTR = 0x0400, LFS3_TAG_UATTR = 0x0600,
LFS3_TAG_SATTR = 0x0500, LFS3_TAG_SATTR = 0x0700,
// shrub tags belong to secondary trees // shrub tags belong to secondary trees
LFS3_TAG_SHRUB = 0x1000, LFS3_TAG_SHRUB = 0x1000,
@@ -828,12 +828,12 @@ enum lfs3_tag {
LFS3_TAG_GCKSUMDELTA = 0x3300, LFS3_TAG_GCKSUMDELTA = 0x3300,
// in-device only tags, these should never get written to disk // in-device only tags, these should never get written to disk
LFS3_tag_INTERNAL = 0x0800, LFS3_tag_INTERNAL = 0x0000,
LFS3_tag_RATTRS = 0x0800, LFS3_tag_RATTRS = 0x0001,
LFS3_tag_SHRUBCOMMIT = 0x0801, LFS3_tag_SHRUBCOMMIT = 0x0002,
LFS3_tag_GRMPUSH = 0x0802, LFS3_tag_GRMPUSH = 0x0003,
LFS3_tag_MOVE = 0x0803, LFS3_tag_MOVE = 0x0004,
LFS3_tag_ATTRS = 0x0804, LFS3_tag_ATTRS = 0x0005,
// some in-device only tag modifiers // some in-device only tag modifiers
LFS3_tag_RM = 0x8000, LFS3_tag_RM = 0x8000,
+38 -37
View File
@@ -113,43 +113,44 @@ WCOMPAT_GBMAP = 0x00080000 # Global on-disk block-map in use
WCOMPAT_DIR = 0x01000000 # Directory file types in use WCOMPAT_DIR = 0x01000000 # Directory file types in use
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -133,43 +133,44 @@ WCOMPAT_GBMAP = 0x00080000 # Global on-disk block-map in use
WCOMPAT_DIR = 0x01000000 # Directory file types in use WCOMPAT_DIR = 0x01000000 # Directory file types in use
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -19,43 +19,44 @@ except ModuleNotFoundError:
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -38,43 +38,44 @@ WCOMPAT_GBMAP = 0x00080000 # Global on-disk block-map in use
WCOMPAT_DIR = 0x01000000 # Directory file types in use WCOMPAT_DIR = 0x01000000 # Directory file types in use
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -19,43 +19,44 @@ except ModuleNotFoundError:
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -29,43 +29,44 @@ COLORS = [
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000
+38 -37
View File
@@ -13,43 +13,44 @@ import sys
TAG_NULL = 0x0000 ## v--- ---- +--- ---- TAG_NULL = 0x0000 ## v--- ---- +--- ----
TAG_CONFIG = 0x0000 ## v--- ---- +ttt tttt TAG_INTERNAL = 0x0000 ## v--- ---- +ttt tttt
TAG_MAGIC = 0x0031 # v--- ---- +-11 --rr TAG_CONFIG = 0x0100 ## v--- ---1 +ttt tttt
TAG_VERSION = 0x0034 # v--- ---- +-11 -1-- TAG_MAGIC = 0x0131 # v--- ---1 +-11 --rr
TAG_RCOMPAT = 0x0035 # v--- ---- +-11 -1-1 TAG_VERSION = 0x0134 # v--- ---1 +-11 -1--
TAG_WCOMPAT = 0x0036 # v--- ---- +-11 -11- TAG_RCOMPAT = 0x0135 # v--- ---1 +-11 -1-1
TAG_OCOMPAT = 0x0037 # v--- ---- +-11 -111 TAG_WCOMPAT = 0x0136 # v--- ---1 +-11 -11-
TAG_GEOMETRY = 0x0038 # v--- ---- +-11 1--- TAG_OCOMPAT = 0x0137 # v--- ---1 +-11 -111
TAG_NAMELIMIT = 0x0039 # v--- ---- +-11 1--1 TAG_GEOMETRY = 0x0138 # v--- ---1 +-11 1---
TAG_FILELIMIT = 0x003a # v--- ---- +-11 1-1- TAG_NAMELIMIT = 0x0139 # v--- ---1 +-11 1--1
TAG_GDELTA = 0x0100 ## v--- ---1 +ttt ttrr TAG_FILELIMIT = 0x013a # v--- ---1 +-11 1-1-
TAG_GRMDELTA = 0x0100 # v--- ---1 +--- ---- TAG_GDELTA = 0x0200 ## v--- --1- +ttt tttt
TAG_GBMAPDELTA = 0x0104 # v--- ---1 +--- -1rr TAG_GRMDELTA = 0x0230 # v--- --1- +-11 ----
TAG_NAME = 0x0200 ## v--- --1- +ttt tttt TAG_GBMAPDELTA = 0x0234 # v--- --1- +-11 -1rr
TAG_BNAME = 0x0200 # v--- --1- +--- ---- TAG_NAME = 0x0300 ## v--- --11 +ttt tttt
TAG_REG = 0x0201 # v--- --1- +--- ---1 TAG_BNAME = 0x0300 # v--- --11 +--- ----
TAG_DIR = 0x0202 # v--- --1- +--- --1- TAG_REG = 0x0301 # v--- --11 +--- ---1
TAG_STICKYNOTE = 0x0203 # v--- --1- +--- --11 TAG_DIR = 0x0302 # v--- --11 +--- --1-
TAG_BOOKMARK = 0x0204 # v--- --1- +--- -1-- TAG_STICKYNOTE = 0x0303 # v--- --11 +--- --11
TAG_MNAME = 0x0220 # v--- --1- +-1- ---- TAG_BOOKMARK = 0x0304 # v--- --11 +--- -1--
TAG_STRUCT = 0x0300 ## v--- --11 +ttt ttrr TAG_MNAME = 0x0330 # v--- --11 +-11 ----
TAG_BRANCH = 0x0300 # v--- --11 +--- --rr TAG_STRUCT = 0x0400 ## v--- -1-- +ttt tttt
TAG_DATA = 0x0304 # v--- --11 +--- -1-- TAG_BRANCH = 0x0400 # v--- -1-- +--- --rr
TAG_BLOCK = 0x0308 # v--- --11 +--- 1err TAG_DATA = 0x0404 # v--- -1-- +--- -1--
TAG_DID = 0x0314 # v--- --11 +--1 -1-- TAG_BLOCK = 0x0408 # v--- -1-- +--- 1err
TAG_BSHRUB = 0x0318 # v--- --11 +--1 1--- TAG_DID = 0x0420 # v--- -1-- +-1- ----
TAG_BTREE = 0x031c # v--- --11 +--1 11rr TAG_BSHRUB = 0x0428 # v--- -1-- +-1- 1---
TAG_MROOT = 0x0321 # v--- --11 +-1- --rr TAG_BTREE = 0x042c # v--- -1-- +-1- 11rr
TAG_MDIR = 0x0325 # v--- --11 +-1- -1rr TAG_MROOT = 0x0431 # v--- -1-- +-11 --rr
TAG_MTREE = 0x032c # v--- --11 +-1- 11rr TAG_MDIR = 0x0435 # v--- -1-- +-11 -1rr
TAG_BMRANGE = 0x0330 # v--- --11 +-11 ++uu TAG_MTREE = 0x043c # v--- -1-- +-11 11rr
TAG_BMFREE = 0x0330 # v--- --11 +-11 ---- TAG_BMRANGE = 0x0440 # v--- -1-- +1-- ++uu
TAG_BMINUSE = 0x0331 # v--- --11 +-11 ---1 TAG_BMFREE = 0x0440 # v--- -1-- +1-- ----
TAG_BMERASED = 0x0332 # v--- --11 +-11 --1- TAG_BMINUSE = 0x0441 # v--- -1-- +1-- ---1
TAG_BMBAD = 0x0333 # v--- --11 +-11 --11 TAG_BMERASED = 0x0442 # v--- -1-- +1-- --1-
TAG_ATTR = 0x0400 ## v--- -1-a +aaa aaaa TAG_BMBAD = 0x0443 # v--- -1-- +1-- --11
TAG_UATTR = 0x0400 # v--- -1-- +aaa aaaa TAG_ATTR = 0x0600 ## v--- -11a +aaa aaaa
TAG_SATTR = 0x0500 # v--- -1-1 +aaa aaaa TAG_UATTR = 0x0600 # v--- -11- +aaa aaaa
TAG_SATTR = 0x0700 # v--- -111 +aaa aaaa
TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk TAG_SHRUB = 0x1000 ## v--1 kkkk +kkk kkkk
TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk TAG_ALT = 0x4000 ## v1cd kkkk +kkk kkkk
TAG_B = 0x0000 TAG_B = 0x0000