Skip to content

TLV

· xieyuheng

TLV ​

TLV(tag-length-value)二进制编码, 中文翻译为「标长值」编码。

通用的 TLV 格式设计:

  • little endian
  • TLV entry: (tag u8, length u32, value)
  • tag 为 0 时代表注释 -- value 是 c string

还剩下 255 个 tag, 不同应用可以根据约定来自己解释。

这样方便支持 fat executable, 比如 xvm 和 x86 生成的代码可以保存到同一个可执行文件中。

name table ​

可以利用 name table 来保存 static string(不光是代表 name 的 string)。

name table 中 name 都是唯一的, 因此可以通过对比 offset 是否相等来判断 name 是否相等。

name table 需要分配一个 tag, 对于使用 name table 的数据而言, loader 加载时要先找这个 tag。