summaryrefslogtreecommitdiff
path: root/src/code/load.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/load.c')
-rw-r--r--src/code/load.c74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/code/load.c b/src/code/load.c
deleted file mode 100644
index 39662cbce..000000000
--- a/src/code/load.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "global.h"
-
-size_t Overlay_Load(uintptr_t vromStart, uintptr_t vromEnd, void* vramStart, void* vramEnd, void* allocatedRamAddr) {
- s32 pad[3];
- uintptr_t end;
- OverlayRelocationSection* ovlRelocs;
- u32 relocSectionOffset = 0;
- s32 size = vromEnd - vromStart;
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF(
- T("\nダイナミックリンクファンクションのロードを開始します\n", "\nStart loading dynamic link function\n"));
- }
-
- size = vromEnd - vromStart;
- end = (uintptr_t)allocatedRamAddr + size;
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF(T("TEXT,DATA,RODATA+relをDMA転送します(%08x-%08x)\n",
- "DMA transfer of TEXT, DATA, RODATA + rel (%08x-%08x)\n"),
- allocatedRamAddr, end);
- }
-
- // DMA the overlay, wait until transfer completes
- DmaMgr_RequestSync(allocatedRamAddr, vromStart, size);
-
- // The overlay file is expected to contain a 32-bit offset from the end of the file to the start of the
- // relocation section.
- relocSectionOffset = ((s32*)end)[-1];
- ovlRelocs = (OverlayRelocationSection*)(end - relocSectionOffset);
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF("TEXT(%08x), DATA(%08x), RODATA(%08x), BSS(%08x)\n", ovlRelocs->textSize, ovlRelocs->dataSize,
- ovlRelocs->rodataSize, ovlRelocs->bssSize);
- }
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF(T("リロケーションします\n", "Relocate\n"));
- }
-
- // Relocate pointers in overlay code and data
- Overlay_Relocate(allocatedRamAddr, ovlRelocs, vramStart);
-
- // Clear bss if present, bss is located immediately following the relocations
- if (ovlRelocs->bssSize != 0) {
- if (gOverlayLogSeverity >= 3) {
- PRINTF(T("BSS領域をクリアします(%08x-%08x)\n", "Clear BSS area (%08x-%08x)\n"), end,
- end + ovlRelocs->bssSize);
- }
- bzero((void*)end, ovlRelocs->bssSize);
- }
-
- size = (uintptr_t)(ovlRelocs->relocations + ovlRelocs->nRelocations) - (uintptr_t)ovlRelocs;
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF(T("REL領域をクリアします(%08x-%08x)\n", "Clear REL area (%08x-%08x)\n"), ovlRelocs,
- (uintptr_t)ovlRelocs + size);
- }
-
- // Clear relocations, this space remains allocated and goes unused
- bzero(ovlRelocs, size);
-
- // Manually flush caches
- size = (uintptr_t)vramEnd - (uintptr_t)vramStart;
- osWritebackDCache(allocatedRamAddr, size);
- osInvalICache(allocatedRamAddr, size);
-
- if (gOverlayLogSeverity >= 3) {
- PRINTF(
- T("ダイナミックリンクファンクションのロードを終了します\n\n", "Finish loading dynamic link function\n\n"));
- }
-
- return size;
-}