def header
@header ||= cursor(pos_header).name("header") do |c|
header = {
:prev => c.name("prev") { c.get_uint16 },
:next => c.name("next") { c.get_uint16 },
}
info = c.name("info") { c.get_uint8 }
cmpl = (info & COMPILATION_INFO_MASK) >> COMPILATION_INFO_SHIFT
header[:type] = TYPE[info & TYPE_MASK]
header[:extern_flag] = (info & EXTERN_FLAG) != 0
header[:info] = {
:order_may_change => (cmpl & COMPILATION_INFO_NO_ORDER_CHANGE_BV) == 0,
:size_may_change => (cmpl & COMPILATION_INFO_NO_SIZE_CHANGE_BV) == 0,
}
header
end
end