2021-03-28 22:49:05 +02:00
|
|
|
#ifndef OSMEMORY_H
|
|
|
|
|
#define OSMEMORY_H
|
|
|
|
|
|
2022-08-30 14:22:17 -07:00
|
|
|
#include "dolphin/os/OSInterrupt.h"
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
2023-01-02 11:20:10 -08:00
|
|
|
#define OS_PROTECT_CHAN0 0
|
|
|
|
|
#define OS_PROTECT_CHAN1 1
|
|
|
|
|
#define OS_PROTECT_CHAN2 2
|
|
|
|
|
#define OS_PROTECT_CHAN3 3
|
|
|
|
|
|
|
|
|
|
#define OS_PROTECT_CONTROL_NONE 0x00
|
|
|
|
|
#define OS_PROTECT_CONTROL_READ 0x01
|
|
|
|
|
#define OS_PROTECT_CONTROL_WRITE 0x02
|
|
|
|
|
#define OS_PROTECT_CONTROL_RDWR (OS_PROTECT_CONTROL_READ | OS_PROTECT_CONTROL_WRITE)
|
|
|
|
|
|
2024-01-19 16:22:19 -08:00
|
|
|
static void MEMIntrruptHandler(__OSInterrupt interrupt, struct OSContext* context);
|
2022-08-30 14:22:17 -07:00
|
|
|
void OSProtectRange(u32 channel, void* address, u32 nBytes, u32 control);
|
|
|
|
|
static void Config24MB(void);
|
|
|
|
|
static void Config48MB(void);
|
2023-01-02 11:20:10 -08:00
|
|
|
static void RealMode(u32 config);
|
2022-08-30 14:22:17 -07:00
|
|
|
void __OSInitMemoryProtection(void);
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
};
|
|
|
|
|
#endif
|
2021-03-28 22:49:05 +02:00
|
|
|
|
|
|
|
|
#endif /* OSMEMORY_H */
|