public SectionHeader(ByteBuffer buf) throws IOException {
    byte[] nameBytes = new byte[8];
    buf.get(nameBytes);

    type = SectionType.valueOf(nameBytes);
    physicalAddress = buf.getInt();
    virtualAddress = buf.getInt();
    size = buf.getInt();
    dataOffset = buf.getInt();
    relocTableOffset = buf.getInt();
    lineNumberOffset = buf.getInt();
    relocTableSize = buf.getShort();
    lineNumberSize = buf.getShort();
    flags = buf.getInt();
  }