48#define OFFSET(addr, align) (((u32) (addr) & ((align) - 1)))
49#define ROUND(n, a) (((u32) (n) + (a) - 1) & ~((a) - 1))
50#define TRUNC(n, a) (((u32) (n)) & ~((a) - 1))
56#define OS_CACHED_REGION_PREFIX 0x8000
57#define OS_UNCACHED_REGION_PREFIX 0xC000
58#define OS_PHYSICAL_MASK 0x3FFF
60#define OS_BASE_CACHED (OS_CACHED_REGION_PREFIX << 16)
61#define OS_BASE_UNCACHED (OS_UNCACHED_REGION_PREFIX << 16)
63#if defined(__MWERKS__) && !defined(M2CTX)
74#define __OSBusClock (*(u32*) (OS_BASE_CACHED | 0x00F8))
75#define __OSCoreClock (*(u32*) (OS_BASE_CACHED | 0x00FC))
77#define OS_BUS_CLOCK __OSBusClock
78#define OS_CORE_CLOCK __OSCoreClock
79#define OS_TIMER_CLOCK (OS_BUS_CLOCK / 4)
81#define OSTicksToSeconds(ticks) ((ticks) / (OS_TIMER_CLOCK))
82#define OSTicksToMilliseconds(ticks) ((ticks) / (OS_TIMER_CLOCK / 1000))
83#define OSTicksToMicroseconds(ticks) ((ticks) * 8 / (OS_TIMER_CLOCK / 125000))
84#define OSSecondsToTicks(sec) ((sec) * (OS_TIMER_CLOCK))
85#define OSMillisecondsToTicks(msec) ((msec) * (OS_TIMER_CLOCK / 1000))
86#define OSNanosecondsToTicks(nsec) \
87 (((nsec) * (OS_TIMER_CLOCK / 125000)) / 8000)
88#define OSMicrosecondsToTicks(usec) (((usec) * (OS_TIMER_CLOCK / 125000)) / 8)
120typedef struct OSBootInfo_s {
141#define OS_CONSOLE_MASK 0xf0000000
142#define OS_CONSOLE_RETAIL 0x00000000
143#define OS_CONSOLE_DEVELOPMENT 0x10000000
144#define OS_CONSOLE_TDEV 0x20000000
146#define OS_CONSOLE_RETAIL4 0x00000004
147#define OS_CONSOLE_RETAIL3 0x00000003
148#define OS_CONSOLE_RETAIL2 0x00000002
149#define OS_CONSOLE_RETAIL1 0x00000001
150#define OS_CONSOLE_TDEVHW4 0x20000007
151#define OS_CONSOLE_TDEVHW3 0x20000006
152#define OS_CONSOLE_TDEVHW2 0x20000005
153#define OS_CONSOLE_TDEVHW1 0x20000004
154#define OS_CONSOLE_DEVHW4 0x10000007
155#define OS_CONSOLE_DEVHW3 0x10000006
156#define OS_CONSOLE_DEVHW2 0x10000005
157#define OS_CONSOLE_DEVHW1 0x10000004
158#define OS_CONSOLE_MINNOW 0x10000003
159#define OS_CONSOLE_ARTHUR 0x10000002
160#define OS_CONSOLE_PC_EMULATOR 0x10000001
161#define OS_CONSOLE_EMULATOR 0x10000000
163#define OS_SOUND_MODE_MONO 0
164#define OS_SOUND_MODE_STEREO 1
169#ifndef DOLPHIN_ATTRIBUTE_NORETURN
170#if defined(__clang__) || defined(__GNUC__)
171#define DOLPHIN_ATTRIBUTE_NORETURN __attribute__((noreturn))
173#define DOLPHIN_ATTRIBUTE_NORETURN
179 const char* msg, ...);
181#define OSRoundUp32B(x) (((u32) (x) + 32 - 1) & ~(32 - 1))
182#define OSRoundDown32B(x) (((u32) (x)) & ~(32 - 1))
191#define OSPhysicalToCached(paddr) \
192 ((void*) ((u32) (OS_BASE_CACHED + (u32) (paddr))))
193#define OSPhysicalToUncached(paddr) \
194 ((void*) ((u32) (OS_BASE_UNCACHED + (u32) (paddr))))
195#define OSCachedToPhysical(caddr) ((u32) ((u32) (caddr) - OS_BASE_CACHED))
196#define OSUncachedToPhysical(ucaddr) \
197 ((u32) ((u32) (ucaddr) - OS_BASE_UNCACHED))
198#define OSCachedToUncached(caddr) \
199 ((void*) ((u8*) (caddr) + (OS_BASE_UNCACHED - OS_BASE_CACHED)))
200#define OSUncachedToCached(ucaddr) \
201 ((void*) ((u8*) (ucaddr) - (OS_BASE_UNCACHED - OS_BASE_CACHED)))
size_t size
Definition __os.h:98
int BOOL
Definition types.h:25
unsigned int u32
Definition types.h:13
signed short int s16
Definition types.h:6
signed long long int s64
Definition types.h:15
BOOL OSDisableInterrupts(void)
Definition OSInterrupt.c:59
#define OS_BASE_CACHED
Definition os.h:60
OSTime OSGetTime(void)
Definition OSTime.c:15
#define OSUncachedToCached(ucaddr)
Definition os.h:200
BOOL OSRestoreInterrupts(BOOL level)
#define OSCachedToPhysical(caddr)
Definition os.h:195
#define __OSBusClock
Definition os.h:74
void(* __OSInterruptHandler)(__OSInterrupt interrupt, OSContext *context)
Definition os.h:18
#define OSPhysicalToUncached(paddr)
Definition os.h:193
unsigned long OSGetConsoleType(void)
Definition OS.c:109
void OSSetArenaLo(void *)
Definition OSArena.c:31
void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime *td)
u32 OSGetConsoleSimulatedMemSize(void)
Definition OSMemory.c:18
void OSReport(char *,...)
Definition OSError.c:12
u32 OSGetPhysicalMemSize(void)
Definition OSMemory.c:7
s64 OSTime
Definition os.h:10
void OSSetSoundMode(u32 mode)
Definition OSRtc.c:327
BOOL OSEnableInterrupts(void)
Definition OSInterrupt.c:72
void * OSAllocFromArenaHi(u32 size, u32 align)
Definition OSArena.c:49
s16 __OSInterrupt
Definition os.h:13
void __OSPSInit()
Definition OS.c:499
#define OSCachedToUncached(caddr)
Definition os.h:198
#define DOLPHIN_ATTRIBUTE_NORETURN
Definition os.h:173
u32 OSGetSoundMode(void)
Definition OSRtc.c:318
u32 OSTick
Definition os.h:11
#define __OSCoreClock
Definition os.h:75
void * OSGetArenaLo(void)
Definition OSArena.c:17
void OSSetArenaHi(void *)
Definition OSArena.c:26
DOLPHIN_ATTRIBUTE_NORETURN void OSPanic(const char *file, int line, const char *msg,...)
Definition OSError.c:20
OSTick OSGetTick(void)
Definition OSTime.c:33
#define OSPhysicalToCached(paddr)
Definition os.h:191
void * OSAllocFromArenaLo(u32 size, u32 align)
Definition OSArena.c:36
void * OSGetArenaHi(void)
Definition OSArena.c:8
OSTime OSCalendarTimeToTicks(OSCalendarTime *td)
Definition OSTime.c:195
#define OSUncachedToPhysical(ucaddr)
Definition os.h:196
u32 __OSGetDIConfig(void)
Definition OS.c:513
u32 OSInterruptMask
Definition os.h:14
void OSInit(void)
Definition OS.c:146
unsigned long magic
Definition os.h:123
void * arenaHi
Definition os.h:128
DVDDiskID DVDDiskID
Definition os.h:122
unsigned long consoleType
Definition os.h:126
void * FSTLocation
Definition os.h:129
unsigned long FSTMaxLength
Definition os.h:130
void * arenaLo
Definition os.h:127
unsigned long version
Definition os.h:124
unsigned long memorySize
Definition os.h:125
int msec
Definition os.h:114
int mday
Definition os.h:109
int sec
Definition os.h:106
int yday
Definition os.h:113
int mon
Definition os.h:110
int wday
Definition os.h:112
int year
Definition os.h:111
int usec
Definition os.h:115
int min
Definition os.h:107
int hour
Definition os.h:108
Definition OSContext.h:137
OSThreadQueue __OSActiveThreadQueue
Definition targimpl.c:26