1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<HTML> 3<HEAD> 4<META http-equiv="Content-Type" content="text/html; charset=windows-1252"> 5<META name="GENERATOR" content="Microsoft FrontPage 5.0"> 6<META http-equiv="Content-Style-Type" content="text/css"> 7<LINK rel="stylesheet" type="text/css" href="../CSS/revolution.css"> 8<BASE target="main"> 9<TITLE><revolution/os.h></TITLE> 10</HEAD> 11<BODY> 12<H2>Operating System (OS)</H2> 13 14<P><B><A href="Font/intro.html">ROM Font</A></B></P> 15<P><B><A href="Interrupt/intro.html">Interrupts and Callback Functions</A></B></P> 16<P><B><A href="Rel/intro.html">Relocatable Module System</A></B></P> 17<P><B><A href="Reset/intro.html">Reset Functions and Shutdown Functions</A></B></P> 18<P><B><A href="Thread/intro.html">Thread State Transitions</A></B></P> 19 20<p><b><A href="sampledemos/osdemos.html">Sample Demos</A></b></p> 21 22<P>[<B><A href="list.html">Function List</A></B>]</P> 23 24<H3><A name="Address Conversion">Address Conversion</A></H3> 25<P> 26<A href="Address/OSPhysicalToCached.html"><CODE>OSPhysicalToCached</CODE></A><BR> <A href="Address/OSPhysicalToUncached.html"><CODE>OSPhysicalToUncached</CODE></A><BR> <A href="Address/OSCachedToPhysical.html"><CODE>OSCachedToPhysical</CODE></A><BR> <A href="Address/OSUncachedToPhysical.html"><CODE>OSUncachedToPhysical</CODE></A><BR> <A href="Address/OSCachedToUncached.html"><CODE>OSCachedToUncached</CODE></A><BR> <A href="Address/OSUncachedToCached.html"><CODE>OSUncachedToCached</CODE></A><BR> 27</P> 28<P> 29<A href="Address/OSRoundUp32B.html"><CODE>OSRoundUp32B</CODE></A><BR> <A href="Address/OSRoundDown32B.html"><CODE>OSRoundDown32B</CODE></A><BR> 30</P> 31 32<H3><A name="Alarm">Alarms</A></H3> 33<P> 34<A href="Alarm/OSCancelAlarm.html"><CODE>OSCancelAlarm</CODE></A><BR> <A href="Alarm/OSCancelAlarms.html"><CODE>OSCancelAlarms</CODE></A><BR> <A href="Alarm/OSCreateAlarm.html"><CODE>OSCreateAlarm</CODE></A><BR> <A href="Alarm/OSSetAlarm.html"><CODE>OSSetAlarm</CODE></A><BR> <A href="Alarm/OSSetAlarmTag.html"><CODE>OSSetAlarmTag</CODE></A><BR> <A href="Alarm/OSSetPeriodicAlarm.html"><CODE>OSSetPeriodicAlarm</CODE></A><BR> <A href="Alarm/OSSetAlarmUserData.html"><CODE>OSSetAlarmUserData</CODE></A><BR> <A href="Alarm/OSGetAlarmUserData.html"><CODE>OSGetAlarmUserData</CODE></A><BR> 35</P> 36 37<H3><A name="Arena">Arena</A></H3> 38<P> 39<A href="Arena/OSAllocFromMEM1ArenaHi.html"><CODE>OSAllocFromMEM1ArenaHi</CODE></A><BR> <A href="Arena/OSAllocFromMEM1ArenaLo.html"><CODE>OSAllocFromMEM1ArenaLo</CODE></A><BR> <A href="Arena/OSAllocFromMEM2ArenaHi.html"><CODE>OSAllocFromMEM2ArenaHi</CODE></A><BR> <A href="Arena/OSAllocFromMEM2ArenaLo.html"><CODE>OSAllocFromMEM2ArenaLo</CODE></A><BR> <A href="Arena/OSGetMEM1ArenaHi.html"><CODE>OSGetMEM1ArenaHi</CODE></A><BR> <A href="Arena/OSGetMEM1ArenaLo.html"><CODE>OSGetMEM1ArenaLo</CODE></A><BR> <A href="Arena/OSGetMEM2ArenaHi.html"><CODE>OSGetMEM2ArenaHi</CODE></A><BR> <A href="Arena/OSGetMEM2ArenaLo.html"><CODE>OSGetMEM2ArenaLo</CODE></A><BR> <A href="Arena/OSSetMEM1ArenaHi.html"><CODE>OSSetMEM1ArenaHi</CODE></A><BR> <A href="Arena/OSSetMEM1ArenaLo.html"><CODE>OSSetMEM1ArenaLo</CODE></A><BR> <A href="Arena/OSSetMEM2ArenaHi.html"><CODE>OSSetMEM2ArenaHi</CODE></A><BR> <A href="Arena/OSSetMEM2ArenaLo.html"><CODE>OSSetMEM2ArenaLo</CODE></A><BR> 40</P> 41 42<H3><A name="Cache">Cache</A></H3> 43<P> 44<A href="Cache/DCFlushRange.html"><CODE>DCFlushRange</CODE></A><BR> <A href="Cache/DCFlushRangeNoSync.html"><CODE>DCFlushRangeNoSync</CODE></A><BR> <A href="Cache/DCFreeze.html"><CODE>DCFreeze</CODE></A><BR> <A href="Cache/DCInvalidateRange.html"><CODE>DCInvalidateRange</CODE></A><BR> <A href="Cache/DCStoreRange.html"><CODE>DCStoreRange</CODE></A><BR> <A href="Cache/DCStoreRangeNoSync.html"><CODE>DCStoreRangeNoSync</CODE></A><BR> <A href="Cache/DCTouchRange.html"><CODE>DCTouchRange</CODE></A><BR> <A href="Cache/DCUnfreeze.html"><CODE>DCUnfreeze</CODE></A><BR> <A href="Cache/DCZeroRange.html"><CODE>DCZeroRange</CODE></A><BR> <A href="Cache/ICFreeze.html"><CODE>ICFreeze</CODE></A><BR> <A href="Cache/ICInvalidateRange.html"><CODE>ICInvalidateRange</CODE></A><BR> <A href="Cache/ICUnfreeze.html"><CODE>ICUnfreeze</CODE></A><BR> <A href="Cache/LCDisable.html"><CODE>LCDisable</CODE></A><BR> <A href="Cache/LCEnable.html"><CODE>LCEnable</CODE></A><BR> <A href="Cache/LCGetBase.html"><CODE>LCGetBase</CODE></A><BR> <A href="Cache/LCFlushQueue.html"><CODE>LCFlushQueue</CODE></A><BR> <A href="Cache/LCLoadBlocks.html"><CODE>LCLoadBlocks</CODE></A><BR> <A href="Cache/LCLoadData.html"><CODE>LCLoadData</CODE></A><BR> <A href="Cache/LCQueueLength.html"><CODE>LCQueueLength</CODE></A><BR> <A href="Cache/LCQueueWait.html"><CODE>LCQueueWait</CODE></A><BR> <A href="Cache/LCStoreBlocks.html"><CODE>LCStoreBlocks</CODE></A><BR> <A href="Cache/LCStoreData.html"><CODE>LCStoreData</CODE></A><BR> 45</P> 46 47<H3><A name="Error">Error</A></H3> 48<P> 49<A href="Error/ASSERT.html"><CODE>ASSERT</CODE></A><BR> <A href="Error/ASSERTMSG.html"><CODE>ASSERTMSG</CODE></A><BR> <A href="Error/OSFatal.html"><CODE>OSFatal</CODE></A><BR> <A href="Error/OSHalt.html"><CODE>OSHalt</CODE></A><BR> <A href="Error/OSProtectRange.html"><CODE>OSProtectRange</CODE></A><BR> <A href="Error/OSReport.html"><CODE>OSReport</CODE></A><BR> <A href="Error/OSSetErrorHandler.html"><CODE>OSSetErrorHandler</CODE></A><BR> 50</P> 51 52<H3><A name="Exec">Execution</A></H3> 53<P> 54<A href="Reset/OSExec.html"><CODE>OSExecl</CODE></A><BR> <A href="Reset/OSExec.html"><CODE>OSExecv</CODE></A><BR> 55</P> 56 57<H3><A name="FastCast">Fast Cast</A></H3> 58<P> 59<code><a href="os/FastCast/OSf32tos16.html">OSf32tos16</a><br> <a href="os/FastCast/OSf32tos8.html">OSf32tos8</a><br> <a href="os/FastCast/OSf32tou16.html">OSf32tou16</a><br> <a href="os/FastCast/OSf32tou8.html">OSf32tou8</a><br> <a href="os/FastCast/OSInitFastCast.html">OSInitFastCast</a><br> <a href="os/FastCast/OSs16tof32.html">OSs16tof32</a><br> <a href="os/FastCast/OSs8tof32.html">OSs8tof32</a><br> <a href="os/FastCast/OSu16tof32.html">OSu16tof32</a><br> <a href="os/FastCast/OSu8tof32.html">OSu8tof32<br></a><a href="os/FastCast/OSSetGQR.html">OSSetGQR[n]</a></code> 60</P> 61 62<H3><A name="Font">Font</A></H3> 63<P> 64<!--<B><A href="Font/intro.html">?????????</A></B><BR>--> <A href="Font/OSGetFontEncode.html"><CODE>OSGetFontEncode</CODE></A><BR> <A href="Font/OSGetFontTexel.html"><CODE>OSGetFontTexel</CODE></A><BR> <A href="Font/OSGetFontTexture.html"><CODE>OSGetFontTexture</CODE></A><BR> <A href="Font/OSGetFontWidth.html"><CODE>OSGetFontWidth</CODE></A><BR> <A href="Font/OSInitFont.html"><CODE>OSInitFont</CODE></A><BR> <A href="Font/OSLoadFont.html"><CODE>OSLoadFont</CODE></A><BR> 65</P> 66 67<H3><A name="Idle">Idle Function</A></H3> 68<P> 69<A href="Thread/OSGetIdleFunction.html"><CODE>OSGetIdleFunction</CODE></A><BR> <A href="Thread/OSSetIdleFunction.html"><CODE>OSSetIdleFunction</CODE></A><BR> 70</P> 71 72<H3><A name="Initialization">Initialization</A></H3> 73<P> 74<A href="Init/OSGetConsoleSimulatedMem1Size.html"><CODE>OSGetConsoleSimulatedMem1Size</CODE></A><BR> <A href="Init/OSGetConsoleSimulatedMem2Size.html"><CODE>OSGetConsoleSimulatedMem2Size</CODE></A><BR> <A href="Init/OSGetConsoleType.html"><CODE>OSGetConsoleType</CODE></A><BR> <A href="Init/OSGetAppGamename.html"><CODE>OSGetAppGamename</CODE></A><BR> <A href="Init/OSGetAppType.html"><CODE>OSGetAppType</CODE></A><BR> <A href="Init/OSGetPhysicalMem1Size.html"><CODE>OSGetPhysicalMem1Size</CODE></A><BR> <A href="Init/OSGetPhysicalMem2Size.html"><CODE>OSGetPhysicalMem2Size</CODE></A><BR> <A href="Init/OSInit.html"><CODE>OSInit</CODE></A><BR> 75</p> 76 77<H3><A name="Interrupt">Interrupts</A></H3> 78<P> 79<A href="Interrupt/OSDisableInterrupts.html"><CODE>OSDisableInterrupts</CODE></A><BR> <A href="Interrupt/OSEnableInterrupts.html"><CODE>OSEnableInterrupts</CODE></A><BR> <A href="Interrupt/OSRestoreInterrupts.html"><CODE>OSRestoreInterrupts</CODE></A><BR> 80</P> 81 82<H3><A name="Memory Allocation">Memory Allocation</A> (MEM Library is recommended)</H3> 83<P> 84<A href="Alloc/OSAddToHeap.html"><CODE>OSAddToHeap</CODE></A><BR> <A href="Alloc/OSAlloc.html"><CODE>OSAlloc</CODE></A><BR> <A href="Alloc/OSAllocFixed.html"><CODE>OSAllocFixed</CODE></A><BR> <A href="Alloc/OSAllocFromHeap.html"><CODE>OSAllocFromHeap</CODE></A><BR> <A href="Alloc/OSCheckHeap.html"><CODE>OSCheckHeap</CODE></A><BR> <A href="Alloc/OSCreateHeap.html"><CODE>OSCreateHeap</CODE></A><BR> <A href="Alloc/OSDestroyHeap.html"><CODE>OSDestroyHeap</CODE></A><BR> <A href="Alloc/OSDumpHeap.html"><CODE>OSDumpHeap</CODE></A><BR> <A href="Alloc/OSFree.html"><CODE>OSFree</CODE></A><BR> <A href="Alloc/OSFreeToHeap.html"><CODE>OSFreeToHeap</CODE></A><BR> <A href="Alloc/OSInitAlloc.html"><CODE>OSInitAlloc</CODE></A><BR> <A href="Alloc/OSSetCurrentHeap.html"><CODE>OSSetCurrentHeap</CODE></A><BR> 85</P> 86 87<H3><A name="Reset">Resetting</A></H3> 88<P> 89<!--<A href="Reset/intro.html"><CODE><B>?????????</B></CODE></A><BR>--> <A href="Reset/OSIsRestart.html"><CODE>OSIsRestart</CODE></A><BR> <A href="Reset/OSGetResetCode.html"><CODE>OSGetResetCode</CODE></A><BR> <A href="Reset/OSGetSaveRegion.html"><CODE>OSGetSaveRegion</CODE></A><BR> <A href="Reset/OSGetSavedRegion.html"><CODE>OSGetSavedRegion</CODE></A><BR> <A href="Reset/OSSetSaveRegion.html"><CODE>OSSetSaveRegion</CODE></A><BR> 90</P> 91 92<P> 93<A href="Reset/OSRebootSystem.html"><CODE>OSRebootSystem</CODE></A><BR> <A href="Reset/OSRestart.html"><CODE>OSRestart</CODE></A><BR> <A href="Reset/OSReturnToMenu.html"><CODE>OSReturnToMenu</CODE></A><BR> <A href="Reset/OSShutdownSystem.html"><CODE>OSShutdownSystem</CODE></A><BR> 94</P> 95 96<H3><A name="Reset Button">RESET Button</A></H3> 97<P> 98<A href="Resetbutton/OSGetResetButtonState.html"><CODE>OSGetResetButtonState</CODE></A><BR> <A href="Resetbutton/OSSetResetCallback.html"><CODE>OSSetResetCallback</CODE></A><BR> <A href="Resetbutton/OSSetPowerCallback.html"><CODE>OSSetPowerCallback</CODE></A><BR> 99</P> 100 101<H3><A name="Relocatable Module System">Relocatable Module System</A><BR> (You can also use the RSO library)</H3> 102<P> 103<!--<A href="Rel/intro.html"><CODE><B>?????????</B></CODE></A><BR>--> <A href="Rel/OSLink.html"><CODE>OSLink</CODE></A><BR> <A href="Rel/OSLink.html"><CODE>OSLinkFixed</CODE></A><BR> <A href="Rel/OSUnlink.html"><CODE>OSUnlink</CODE></A><BR> <A href="Rel/OSSearchModule.html"><CODE>OSSearchModule</CODE></A><BR> <A href="Rel/OSSetStringTable.html"><CODE>OSSetStringTable</CODE></A><BR> 104</P> 105 106<H3><A name="Stack">Stack</A></H3> 107<P> 108<A href="Stack/OSClearStack.html"><CODE>OSClearStack</CODE></A><BR> <A href="Stack/OSGetStackPointer.html"><CODE>OSGetStackPointer</CODE></A><BR> <A href="Stack/OSSwitchFiber.html"><CODE>OSSwitchFiber</CODE></A><BR> <A href="Stack/OSSwitchFiberEx.html"><CODE>OSSwitchFiberEx</CODE></A><BR> <A href="Stack/OSSwitchStack.html"><CODE>OSSwitchStack</CODE></A><BR> 109</P> 110 111<H3><A name="Stopwatch">Stopwatch</A></H3> 112<P> 113<A href="Stopwatch/OSInitStopwatch.html"><CODE>OSInitStopwatch</CODE></A><BR> <A href="Stopwatch/OSStartStopwatch.html"><CODE>OSStartStopwatch</CODE></A><BR> <A href="Stopwatch/OSStopStopwatch.html"><CODE>OSStopStopwatch</CODE></A><BR> <A href="Stopwatch/OSCheckStopwatch.html"><CODE>OSCheckStopwatch</CODE></A><BR> <A href="Stopwatch/OSResetStopwatch.html"><CODE>OSResetStopwatch</CODE></A><BR> <A href="Stopwatch/OSDumpStopwatch.html"><CODE>OSDumpStopwatch</CODE></A><BR> 114</P> 115 116<H3><A name="Synchronization">Synchronization</A></H3> 117<P> 118<A href="Synchronization/PPCSync.html"><CODE>PPCSync</CODE></A><BR> 119</P> 120 121<H3><A name="Time">Time</A></H3> 122<P> 123<A href="Time/OSDiffTick.html"><CODE>OSDiffTick</CODE></A><BR> <BR> <A href="Time/OSGetTime.html"><CODE>OSGetTime</CODE></A><BR> <A href="Time/OSGetTick.html"><CODE>OSGetTick</CODE></A><BR> <BR> <A href="Time/OSTicksToCycles.html"><CODE>OSTicksToCycles</CODE></A><BR> <A href="Time/OSTicksToSeconds.html"><CODE>OSTicksToSeconds</CODE></A><BR> <A href="Time/OSTicksToMilliseconds.html"><CODE>OSTicksToMilliseconds</CODE></A><BR> <A href="Time/OSTicksToMicroseconds.html"><CODE>OSTicksToMicroseconds</CODE></A><BR> <A href="Time/OSTicksToNanoseconds.html"><CODE>OSTicksToNanoseconds</CODE></A><BR> <A href="Time/OSSecondsToTicks.html"><CODE>OSSecondsToTicks</CODE></A><BR> <A href="Time/OSMillisecondsToTicks.html"><CODE>OSMillisecondsToTicks</CODE></A><BR> <A href="Time/OSMicrosecondsToTicks.html"><CODE>OSMicrosecondsToTicks</CODE></A><BR> <A href="Time/OSNanosecondsToTicks.html"><CODE>OSNanosecondsToTicks</CODE></A><BR> 124</P> 125<P> 126<A href="Time/OSCalendarTimeToTicks.html"><CODE>OSCalendarTimeToTicks</CODE></A><BR> <A href="Time/OSTicksToCalendarTime.html"><CODE>OSTicksToCalendarTime</CODE></A><BR> 127</P> 128 129<H3><A name="Thread">Thread</A></H3> 130<P> 131<!--<A href="Thread/intro.html"><CODE><B>????</B></CODE></A><BR>--> <A href="Thread/OSCancelThread.html"><CODE>OSCancelThread</CODE></A><BR> <A href="Thread/OSCheckActiveThreads.html"><CODE>OSCheckActiveThreads</CODE></A><BR> <A href="Thread/OSCreateThread.html"><CODE>OSCreateThread</CODE></A><BR> <A href="Thread/OSDetachThread.html"><CODE>OSDetachThread</CODE></A><BR> <A href="Thread/OSDisableScheduler.html"><CODE>OSDisableScheduler</CODE></A><BR> <A href="Thread/OSEnableScheduler.html"><CODE>OSEnableScheduler</CODE></A><BR> <A href="Thread/OSExitThread.html"><CODE>OSExitThread</CODE></A><BR> <A href="Thread/OSGetCurrentThread.html"><CODE>OSGetCurrentThread</CODE></A><BR> <A href="Thread/OSGetThreadPriority.html"><CODE>OSGetThreadPriority</CODE></A><BR> <A href="Thread/OSSetThreadSpecific.html"><CODE>OSGetThreadSpecific</CODE></A><BR> <A href="Thread/OSInitThreadQueue.html"><CODE>OSInitThreadQueue</CODE></A><BR> <A href="Thread/OSIsThreadSuspended.html"><CODE>OSIsThreadSuspended</CODE></A><BR> <A href="Thread/OSIsThreadTerminated.html"><CODE>OSIsThreadTerminated</CODE></A><BR> <A href="Thread/OSJoinThread.html"><CODE>OSJoinThread</CODE></A><BR> <A href="Thread/OSResumeThread.html"><CODE>OSResumeThread</CODE></A><BR> <A href="Thread/OSSetThreadPriority.html"><CODE>OSSetThreadPriority</CODE></A><BR> <A href="Thread/OSSetThreadSpecific.html"><CODE>OSSetThreadSpecific</CODE></A><BR> <A href="Thread/OSSetSwitchThreadCallback.html"><CODE>OSSetSwitchThreadCallback</CODE></A><BR> <A href="Thread/OSSleepThread.html"><CODE>OSSleepThread</CODE></A><BR> <A href="Thread/OSSuspendThread.html"><CODE>OSSuspendThread</CODE></A><BR> <A href="Thread/OSWakeupThread.html"><CODE>OSWakeupThread</CODE></A><BR> <A href="Thread/OSYieldThread.html"><CODE>OSYieldThread</CODE></A><BR> <A href="Thread/OSSleepMicroseconds.html"><CODE>OSSleepMicroseconds</CODE></A><BR> <A href="Thread/OSSleepMilliseconds.html"><CODE>OSSleepMilliseconds</CODE></A><BR> <A href="Thread/OSSleepNanoseconds.html"><CODE>OSSleepNanoseconds</CODE></A><BR> <A href="Thread/OSSleepSeconds.html"><CODE>OSSleepSeconds</CODE></A><BR> <A href="Thread/OSSleepTicks.html"><CODE>OSSleepTicks</CODE></A><BR> 132</P> 133 134<H3><A name="ThreadSynchronization">Thread Synchronization</A></H3> 135<P><B>Mutexes and Condition Variables</B></P> 136<P> 137<A href="Thread_Synchronization/OSInitCond.html"><CODE>OSInitCond</CODE></A><BR> <A href="Thread_Synchronization/OSInitMutex.html"><CODE>OSInitMutex</CODE></A><BR> <A href="Thread_Synchronization/OSLockMutex.html"><CODE>OSLockMutex</CODE></A><BR> <A href="Thread_Synchronization/OSSignalCond.html"><CODE>OSSignalCond</CODE></A><BR> <A href="Thread_Synchronization/OSTryLockMutex.html"><CODE>OSTryLockMutex</CODE></A><BR> <A href="Thread_Synchronization/OSUnlockMutex.html"><CODE>OSUnlockMutex</CODE></A><BR> <A href="Thread_Synchronization/OSWaitCond.html"><CODE>OSWaitCond</CODE></A><BR> 138</P> 139 140<P><B>Message Queues</B></P> 141<P> 142<A href="Thread_Synchronization/OSInitMessageQueue.html"><CODE>OSInitMessageQueue</CODE></A><BR> <A href="Thread_Synchronization/OSJamMessage.html"><CODE>OSJamMessage</CODE></A><BR> <A href="Thread_Synchronization/OSReceiveMessage.html"><CODE>OSReceiveMessage</CODE></A><BR> <A href="Thread_Synchronization/OSSendMessage.html"><CODE>OSSendMessage</CODE></A><BR> 143</P> 144 145<P><B>Semaphores</B></P> 146<P> 147<A href="Thread_Synchronization/OSGetSemaphoreCount.html"><CODE>OSGetSemaphoreCount</CODE></A><BR> <A href="Thread_Synchronization/OSInitSemaphore.html"><CODE>OSInitSemaphore</CODE></A><BR> <A href="Thread_Synchronization/OSSignalSemaphore.html"><CODE>OSSignalSemaphore</CODE></A><BR> <A href="Thread_Synchronization/OSTryWaitSemaphore.html"><CODE>OSTryWaitSemaphore</CODE></A><BR> <A href="Thread_Synchronization/OSWaitSemaphore.html"><CODE>OSWaitSemaphore</CODE></A><BR> 148</P> 149 150<H3><A name="WiiMenu">Transitions to the Wii Menu or NAND Applications</A></H3> 151<P> 152<A href="WiiMenu/OSReturnToMenu.html"><CODE>OSReturnToMenu</CODE></A><BR> <A href="WiiMenu/OSReturnToDataManager.html"><CODE>OSReturnToDataManager</CODE></A><BR> <A href="WiiMenu/OSReturnToSetting.html"><CODE>OSReturnToSetting</CODE></A><BR> <A href="Reset/OSLaunchManualViewer.html"><CODE>OSLaunchManualViewer</CODE></A><BR> <BR> 153</P> 154<hr><p>CONFIDENTIAL</p></body> 155</HTML>