|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Represents the information stored in a jump table. More...
#include <macos.h>
Classes | |
| struct | Entry |
| Describes a single jump table entry. More... | |
| struct | TransitionVector |
| Describes a single transition vector entry. More... | |
Public Member Functions | |
| void | AddLegacyEntry (Location entry) |
| Attaches a legacy entry type, consisting of a 16-bit segment value and a 16-bit offset value. | |
| void | AddExtendedEntry (Location entry) |
| Attaches an extended entry type, consisting of a 16-bit segment value and a 32-bit offset value. | |
| void | AddFlattenedEntry (Location entry) |
| Attaches a flattened entry type, consisting of a 32-bit relocated address value. | |
| void | AddApplicationTransitionVector (Location seg_loader, Location a5_world, Location entry) |
| Attaches a transition vector to an application, consisting of a location of the segLoader routine, the A5 world, and the 16-bit segment and 32-bit offset of an entry point. | |
| void | AddUnflattenedTransitionVector (Location a5_world, Location entry) |
| Attaches an unflattened library transition vector, consisting of a location of A5 world, and the 16-bit segment and 32-bit offset of an entry point. | |
| void | AddFlattenedTransitionVector (Location a5_world, Location entry) |
| Attaches a (flattened) library transition vector, consisting of a location of A5 world, and the 32-bit relocated addres to an entry point. | |
Public Attributes | |
| uint32_t | above_a5 = 0 |
| uint32_t | below_a5 = 0 |
| uint32_t | jump_table_size = 0 |
| uint32_t | jump_table_offset = 32 |
| std::vector< Entry > | legacy_entries |
| Entries with a 16-bit segment offset, used for near model jump tables, for near model format entries in far model jump tables and classic format entries in CFM-68K jump tables. | |
| std::vector< Entry > | extended_entries |
| Entries with a 32-bit segment offset, used for far model format entries in far model jump tables and regular format entries in CFM-68K jump tables. | |
| std::vector< TransitionVector > | transition_vectors |
Represents the information stored in a jump table.
|
inline |
Attaches a transition vector to an application, consisting of a location of the segLoader routine, the A5 world, and the 16-bit segment and 32-bit offset of an entry point.
Required for CFM-68K applications.
|
inline |
Attaches an extended entry type, consisting of a 16-bit segment value and a 32-bit offset value.
Note that using these during runtime requires patching the LoadSeg routine.
|
inline |
Attaches a flattened entry type, consisting of a 32-bit relocated address value.
Note that these only occur in (flattened) shared libraries, used by CFM-68K.
|
inline |
Attaches a (flattened) library transition vector, consisting of a location of A5 world, and the 32-bit relocated addres to an entry point.
Required for CFM-68K libraries.
|
inline |
Attaches an unflattened library transition vector, consisting of a location of A5 world, and the 16-bit segment and 32-bit offset of an entry point.
Required for CFM-68K.