mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
The cache key of relinked images has no time stamp or check sum, so a different module of the same size loaded at the same base was served the old tables. The loader now forgets the image when it frees the module, the cache has a separate valid flag, and the sysmodule name cache is left out of this change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
29 lines
696 B
C++
29 lines
696 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
struct alignas(4) UnwindFixtureHeader {
|
|
std::uint8_t version = 1;
|
|
std::uint8_t framePointerEncoding = 0x1b;
|
|
std::uint8_t countEncoding = 0x03;
|
|
std::uint8_t tableEncoding = 0x3b;
|
|
std::int32_t frames = 0;
|
|
std::uint32_t count = 0;
|
|
};
|
|
|
|
struct alignas(4) UnwindFixtureFrames {
|
|
std::uint32_t cieLength = 12;
|
|
std::uint32_t cieId = 0;
|
|
std::uint8_t cie[8] = {1, 0, 1, 0x78, 16, 0, 0, 0};
|
|
std::uint32_t terminator = 0;
|
|
std::uint32_t spare[3] = {};
|
|
std::uint32_t spareTerminator = 0;
|
|
};
|
|
|
|
struct UnwindFixture {
|
|
UnwindFixtureHeader header;
|
|
UnwindFixtureFrames frames;
|
|
};
|
|
|
|
extern "C" UnwindFixture* GetUnwindFixture();
|