def read_insert_record(c)
page_offset = c.name("page_offset") { c.get_uint16 }
end_seg_len = c.name("end_seg_len") { c.get_ic_uint32 }
if (end_seg_len & INFO_AND_STATUS_MASK) != 0
info_and_status_bits = c.get_uint8
origin_offset = c.get_ic_uint32
mismatch_index = c.get_ic_uint32
end
{
:page_offset => page_offset,
:end_seg_len => end_seg_len >> 1,
:info_and_status_bits => info_and_status_bits,
:origin_offset => origin_offset,
:mismatch_index => mismatch_index,
:record => c.name("record") { c.get_bytes(end_seg_len >> 1) },
}
end