Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Section Structures

Paul Bowen-Huggett edited this page Aug 14, 2018 · 1 revision

Sections

Each "section" within a fragment is given a constant index in this array. This obviously imposes a hard limit on the maximum number of sections within a fragment.

Generic Section

A section itself consists of three variable-length arrays:

  • The data array. An array of bytes making up the section payload. For example, in a "text" section these would be an individual function's instructions.
  • The internal fixup ("Ifixup") array.
  • The external fixup ("Xfixup") array.

The number of entries in each of these arrays is given by the DataSize, NumIFixups, and NumXfixups members of the section header.

Field Size (bytes) Description
Align 1 The alignment of this section, expressed as a power of 2.
NumIFixups 3 The number of internal fixup records contained within this section.
NumXFixups 4 The number of external fixup records contained within this section.
DataSize 8 The number of bytes of payload data containing within this section.

Internal Fixups

Internal fixups are those fixups which refer to other sections within the same fragment. Because the target fragment is known, these fixups improve performance by avoiding searches of the fragment index.

Field Size (bytes) Description

External Fixups

External fixups are used to refer (by name) to other fragments within the program. They form the arcs in the program graph of which fragments are the vertices.

Field Size (bytes) Description

Dependents Section

Dependent ticket members.

Clone this wiki locally