summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-12 11:03:34 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2024-07-12 11:03:34 -0400
commit1cd37880b7662befa32be751ac542fca87f2d5af (patch)
tree71d85e69f0cbb3efec8b98235da4a71c811a5f4d /src
parent33c6922ae8ee6084e4d501cb456293a5bd1a1979 (diff)
Add AT_ADDRESS macro
Diffstat (limited to 'src')
-rw-r--r--src/dolphin/os/OS.c2
-rw-r--r--src/dolphin/os/OSContext.c5
-rw-r--r--src/dolphin/os/OSError.c6
-rw-r--r--src/dolphin/os/OSInterrupt.c4
-rw-r--r--src/dolphin/os/OSLink.c2
-rw-r--r--src/dolphin/os/OSMemory.c2
-rw-r--r--src/dolphin/os/OSReboot.c10
-rw-r--r--src/dolphin/os/OSReset.c4
-rw-r--r--src/dolphin/os/OSResetSW.c2
-rw-r--r--src/dolphin/os/OSThread.c8
10 files changed, 23 insertions, 22 deletions
diff --git a/src/dolphin/os/OS.c b/src/dolphin/os/OS.c
index 8e6a1a74..3aaa7cda 100644
--- a/src/dolphin/os/OS.c
+++ b/src/dolphin/os/OS.c
@@ -628,7 +628,7 @@ asm void __OSPSInit(void){
// clang-format on
}
-vu32 __DIRegs[16] : 0xCC006000;
+vu32 __DIRegs[16] AT_ADDRESS(0xCC006000);
#define DI_CONFIG_IDX 0x9
#define DI_CONFIG_CONFIG_MASK 0xFF
diff --git a/src/dolphin/os/OSContext.c b/src/dolphin/os/OSContext.c
index f41d4aff..6fa8f0e8 100644
--- a/src/dolphin/os/OSContext.c
+++ b/src/dolphin/os/OSContext.c
@@ -1,9 +1,10 @@
#include "dolphin/os/OSContext.h"
#include "dolphin/db/db.h"
#include "dolphin/os/OS.h"
+#include "dolphin/os/OSUtil.h"
-volatile OSContext* __OSCurrentContext : (OS_BASE_CACHED | 0x00D4);
-volatile OSContext* __OSFPUContext : (OS_BASE_CACHED | 0x00D8);
+volatile OSContext* __OSCurrentContext AT_ADDRESS(OS_BASE_CACHED | 0x00D4);
+volatile OSContext* __OSFPUContext AT_ADDRESS(OS_BASE_CACHED | 0x00D8);
asm void __OSLoadFPUContext(void) {
// clang-format off
diff --git a/src/dolphin/os/OSError.c b/src/dolphin/os/OSError.c
index 53bb300c..4e184693 100644
--- a/src/dolphin/os/OSError.c
+++ b/src/dolphin/os/OSError.c
@@ -4,9 +4,9 @@
#include "dolphin/dvd/dvdlow.h"
#include "dolphin/os/OS.h"
-OSThread* __OSCurrentThread : (OS_BASE_CACHED | 0x00E4);
-OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC);
-volatile OSContext* __OSFPUContext : (OS_BASE_CACHED | 0x00D8);
+OSThread* __OSCurrentThread AT_ADDRESS(OS_BASE_CACHED | 0x00E4);
+OSThreadQueue __OSActiveThreadQueue AT_ADDRESS(OS_BASE_CACHED | 0x00DC);
+volatile OSContext* __OSFPUContext AT_ADDRESS(OS_BASE_CACHED | 0x00D8);
extern volatile u32 __OSLastInterruptSrr0;
extern volatile s16 __OSLastInterrupt;
diff --git a/src/dolphin/os/OSInterrupt.c b/src/dolphin/os/OSInterrupt.c
index 711bfcce..edc2522a 100644
--- a/src/dolphin/os/OSInterrupt.c
+++ b/src/dolphin/os/OSInterrupt.c
@@ -3,8 +3,8 @@
#include "dolphin/exi/EXIBios.h"
#include "dolphin/os/OS.h"
-vu32 __PIRegs[12] : 0xCC003000;
-vu16 __MEMRegs[64] : 0xCC004000;
+vu32 __PIRegs[12] AT_ADDRESS(0xCC003000);
+vu16 __MEMRegs[64] AT_ADDRESS(0xCC004000);
asm BOOL OSDisableInterrupts(void) {
// clang-format off
diff --git a/src/dolphin/os/OSLink.c b/src/dolphin/os/OSLink.c
index e0e987d8..6acb6792 100644
--- a/src/dolphin/os/OSLink.c
+++ b/src/dolphin/os/OSLink.c
@@ -107,7 +107,7 @@
__prev->link.next = __next; \
} while (0)
-OSModuleQueue __OSModuleInfoList : (OS_BASE_CACHED | 0x30C8);
+OSModuleQueue __OSModuleInfoList AT_ADDRESS(OS_BASE_CACHED | 0x30C8);
#pragma dont_inline on
diff --git a/src/dolphin/os/OSMemory.c b/src/dolphin/os/OSMemory.c
index a91576ed..34c28c15 100644
--- a/src/dolphin/os/OSMemory.c
+++ b/src/dolphin/os/OSMemory.c
@@ -4,7 +4,7 @@
#define TRUNC(n, a) (((u32)(n)) & ~((a)-1))
#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1))
-vu16 __MEMRegs[64] : 0xCC004000;
+vu16 __MEMRegs[64] AT_ADDRESS(0xCC004000);
extern OSErrorHandlerEx __OSErrorTable[16];
diff --git a/src/dolphin/os/OSReboot.c b/src/dolphin/os/OSReboot.c
index 91f763f1..92879288 100644
--- a/src/dolphin/os/OSReboot.c
+++ b/src/dolphin/os/OSReboot.c
@@ -1,14 +1,14 @@
-#include "dolphin/os/Os.h"
+#include "dolphin/os/OS.h"
#include "dolphin/os/OSReboot.h"
static void* SaveStart = NULL;
static void* SaveEnd = NULL;
static volatile BOOL Prepared;
-extern u32 OS_RESET_CODE : 0x800030F0;
-extern u8 OS_REBOOT_BOOL : 0x800030E2; // unknown function, set to true by __OSReboot
-extern u32 UNK_817FFFF8 : 0x817FFFF8;
-extern u32 UNK_817FFFFC : 0x817FFFFC;
+extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0);
+extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot
+extern u32 UNK_817FFFF8 AT_ADDRESS(0x817FFFF8);
+extern u32 UNK_817FFFFC AT_ADDRESS(0x817FFFFC);
#define OS_BOOTROM_ADDR 0x81300000
diff --git a/src/dolphin/os/OSReset.c b/src/dolphin/os/OSReset.c
index be39a12f..4f131b1a 100644
--- a/src/dolphin/os/OSReset.c
+++ b/src/dolphin/os/OSReset.c
@@ -1,8 +1,8 @@
#include "dolphin/os/OSReset.h"
#include "dolphin/os/OS.h"
-vu16 __VIRegs[59] : 0xCC002000;
-OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC);
+vu16 __VIRegs[59] AT_ADDRESS(0xCC002000);
+OSThreadQueue __OSActiveThreadQueue AT_ADDRESS(OS_BASE_CACHED | 0x00DC);
static OSResetQueue ResetFunctionQueue;
diff --git a/src/dolphin/os/OSResetSW.c b/src/dolphin/os/OSResetSW.c
index 386bc20d..34b47726 100644
--- a/src/dolphin/os/OSResetSW.c
+++ b/src/dolphin/os/OSResetSW.c
@@ -2,7 +2,7 @@
#include "dolphin/os/OS.h"
#include "dolphin/os/OSReset.h"
-u8 GameChoice : (OS_BASE_CACHED | 0x30E3);
+u8 GameChoice AT_ADDRESS(OS_BASE_CACHED | 0x30E3);
void __OSResetSWInterruptHandler(__OSInterrupt interrupt, OSContext* context);
diff --git a/src/dolphin/os/OSThread.c b/src/dolphin/os/OSThread.c
index a420c749..a5c0e323 100644
--- a/src/dolphin/os/OSThread.c
+++ b/src/dolphin/os/OSThread.c
@@ -7,10 +7,10 @@
#include "dolphin/os/OSThread.h"
#include "dolphin/os/OS.h"
-OSThread* __OSCurrentThread : OS_BASE_CACHED + 0x00E4;
-OSThreadQueue __OSActiveThreadQueue : OS_BASE_CACHED + 0x00DC;
-volatile OSContext __OSCurrentContext : OS_BASE_CACHED + 0x00D4;
-volatile OSContext* __OSFPUContext : OS_BASE_CACHED + 0x00D8;
+OSThread* __OSCurrentThread AT_ADDRESS(OS_BASE_CACHED + 0x00E4);
+OSThreadQueue __OSActiveThreadQueue AT_ADDRESS(OS_BASE_CACHED + 0x00DC);
+volatile OSContext __OSCurrentContext AT_ADDRESS(OS_BASE_CACHED + 0x00D4);
+volatile OSContext* __OSFPUContext AT_ADDRESS(OS_BASE_CACHED + 0x00D8);
#define AddTail(queue, thread, link) \
do { \