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>List of Operating System (OS) Functions</TITLE>
10</HEAD>
11<BODY>
12<H1><A name="Operating System API">List of Operating System (OS) Functions</A></H1>
13
14<H2><A name="Address Conversion">Address Conversion</A></H2>
15<TABLE class="api_list" border="1" >
16  <TBODY>
17    <TR>
18<TH nowrap><A href="Address/OSPhysicalToCached.html">OSPhysicalToCached</A></TH>
19<TD>Converts a physical address into a cached address.</TD>
20    </TR>
21    <TR>
22<TH nowrap><A href="Address/OSPhysicalToUncached.html">OSPhysicalToUncached</A></TH>
23<TD>Converts a physical address into an address outside the cache.</TD>
24    </TR>
25    <TR>
26<TH nowrap><A href="Address/OSCachedToPhysical.html">OSCachedToPhysical</A></TH>
27<TD>Converts a cached address into a physical address.</TD>
28    </TR>
29    <TR>
30<TH nowrap><A href="Address/OSUncachedToPhysical.html">OSUncachedToPhysical</A></TH>
31<TD>Converts an address outside the cache into a physical address.</TD>
32    </TR>
33    <TR>
34<TH nowrap><A href="Address/OSCachedToUncached.html">OSCachedToUncached</A></TH>
35<TD>Converts a cached address into an address outside the cache.</TD>
36    </TR>
37    <TR>
38<TH nowrap><A href="Address/OSUncachedToCached.html">OSUncachedToCached</A></TH>
39<TD>Converts an address outside the cache into a cached address.</TD>
40    </TR>
41    <TR>
42<TH nowrap><A href="Address/OSRoundUp32B.html">OSRoundUp32B</A></TH>
43<TD>Retrieves the closest 32-byte upper boundary.</TD>
44    </TR>
45    <TR>
46<TH nowrap><A href="Address/OSRoundDown32B.html">OSRoundDown32B</A></TH>
47<TD>Retrieves the closest 32-byte lower boundary.</TD>
48    </TR>
49  </TBODY>
50</TABLE>
51
52<H2><A name="Alarm">Alarms</A></H2>
53<TABLE class="api_list" border="1" >
54  <TBODY>
55    <TR>
56<TH nowrap><A href="Alarm/OSCancelAlarm.html">OSCancelAlarm</A></TH>
57<TD>Cancels the specified alarm.</TD>
58    </TR>
59    <TR>
60<TH nowrap><A href="Alarm/OSCancelAlarms.html">OSCancelAlarms</A></TH>
61<TD>Cancels alarm groups that have the same tag.</TD>
62    </TR>
63    <TR>
64<TH nowrap><A href="Alarm/OSCreateAlarm.html">OSCreateAlarm</A></TH>
65<TD>Initializes the structure for the specified alarm.</TD>
66    </TR>
67    <TR>
68<TH nowrap><A href="Alarm/OSSetAlarm.html">OSSetAlarm</A></TH>
69<TD>Sets an alarm.</TD>
70    </TR>
71    <TR>
72<TH nowrap><A href="Alarm/OSSetAlarmTag.html">OSSetAlarmTag</A></TH>
73<TD>Sets a tag to an alarm.</TD>
74    </TR>
75    <TR>
76<TH nowrap><A href="Alarm/OSSetPeriodicAlarm.html">OSSetPeriodicAlarm</A></TH>
77<TD>Sets a periodic alarm.</TD>
78    </TR>
79    <TR>
80<TH nowrap><A href="Alarm/OSSetAlarmUserData.html">OSSetAlarmUserData</A></TH>
81<TD>Sets user data in an alarm.</TD>
82    </TR>
83    <TR>
84<TH nowrap><A href="Alarm/OSGetAlarmUserData.html">OSGetAlarmUserData</A></TH>
85<TD>Gets user data from an alarm.</TD>
86    </TR>
87  </TBODY>
88</TABLE>
89
90<H2><A name="Arena">Arena</A></H2>
91<TABLE class="api_list" border="1" >
92  <TBODY>
93    <TR>
94<TH nowrap><A href="Arena/OSAllocFromMEM1ArenaHi.html">OSAllocFromMEM1ArenaHi</A></TH>
95<TD>Allocates <SPAN class="argument">size</SPAN> bytes from the upper boundary of the arena in internal main memory (MEM1 area).</TD>
96    </TR>
97    <TR>
98<TH nowrap><A href="Arena/OSAllocFromMEM1ArenaLo.html">OSAllocFromMEM1ArenaLo</A></TH>
99<TD>Allocates <SPAN class="argument">size</SPAN> bytes from the lower boundary of the arena in internal main memory (MEM1 area).</TD>
100    </TR>
101    <TR>
102<TH nowrap><A href="Arena/OSAllocFromMEM2ArenaHi.html">OSAllocFromMEM2ArenaHi</A></TH>
103<TD>Allocates <SPAN class="argument">size</SPAN> bytes from the upper boundary of the arena in external main memory (MEM2 area).</TD>
104    </TR>
105    <TR>
106<TH nowrap><A href="Arena/OSAllocFromMEM2ArenaLo.html">OSAllocFromMEM2ArenaLo</A></TH>
107<TD>Allocates <SPAN class="argument">size</SPAN> bytes from the lower boundary of the arena in external main memory (MEM2 area).</TD>
108    </TR>
109    <TR>
110<TH nowrap><A href="Arena/OSGetMEM1ArenaHi.html">OSGetMEM1ArenaHi</A></TH>
111<TD>Gets the upper boundary of the arena in internal main memory (MEM1 area).</TD>
112    </TR>
113    <TR>
114<TH nowrap><A href="Arena/OSGetMEM1ArenaLo.html">OSGetMEM1ArenaLo</A></TH>
115<TD>Gets the lower boundary of the arena in internal main memory (MEM1 area).</TD>
116    </TR>
117    <TR>
118<TH nowrap><A href="Arena/OSGetMEM2ArenaHi.html">OSGetMEM2ArenaHi</A></TH>
119<TD>Gets the upper boundary of the arena in external main memory (MEM2 area).</TD>
120    </TR>
121    <TR>
122<TH nowrap><A href="Arena/OSGetMEM2ArenaLo.html">OSGetMEM2ArenaLo</A></TH>
123<TD>Gets the lower boundary of the arena in external main memory (MEM2 area).</TD>
124    </TR>
125    <TR>
126<TH nowrap><A href="Arena/OSSetMEM1ArenaHi.html">OSSetMEM1ArenaHi</A></TH>
127<TD>Sets the upper boundary of the arena in internal main memory (MEM1 area).</TD>
128    </TR>
129    <TR>
130<TH nowrap><A href="Arena/OSSetMEM1ArenaLo.html">OSSetMEM1ArenaLo</A></TH>
131<TD>Sets the lower boundary of the arena in internal main memory (MEM1 area).</TD>
132    </TR>
133    <TR>
134<TH nowrap><A href="Arena/OSSetMEM2ArenaHi.html">OSSetMEM2ArenaHi</A></TH>
135<TD>Sets the upper boundary of the arena in external main memory (MEM2 area).</TD>
136    </TR>
137    <TR>
138<TH nowrap><A href="Arena/OSSetMEM2ArenaLo.html">OSSetMEM2ArenaLo</A></TH>
139<TD>Sets the lower boundary of the arena in external main memory (MEM2 area).</TD>
140    </TR>
141  </TBODY>
142</TABLE>
143
144<H2><A name="Cache">Cache (Data Cache)</A></H2>
145<H3>Data Cache</H3>
146<TABLE class="api_list" border="1" >
147  <TBODY>
148    <TR>
149<TH nowrap><A href="Cache/DCFlushRange.html">DCFlushRange</A></TH>
150<TD>Flushes the specified region of the data cache.</TD>
151    </TR>
152    <TR>
153<TH nowrap><A href="Cache/DCFlushRangeNoSync.html">DCFlushRangeNoSync</A></TH>
154<TD>Invalidates a specified data cache range.</TD>
155    </TR>
156    <TR>
157<TH nowrap><A href="Cache/DCFreeze.html">DCFreeze</A></TH>
158<TD>Current contents of the L1 data cache are locked and will not be invalidated.</TD>
159    </TR>
160    <TR>
161<TH nowrap><A href="Cache/DCInvalidateRange.html">DCInvalidateRange</A></TH>
162<TD>Invalidates the specified region of the data cache.</TD>
163    </TR>
164    <TR>
165<TH nowrap><A href="Cache/DCStoreRange.html">DCStoreRange</A></TH>
166<TD>Reflects (writes back) the data in the specified region of the data cache to real memory.</TD>
167    </TR>
168    <TR>
169<TH nowrap><A href="Cache/DCStoreRangeNoSync.html">DCStoreRangeNoSync</A></TH>
170<TD>Securely updates specified memory range with modified data in the cache.</TD>
171    </TR>
172    <TR>
173<TH nowrap><A href="Cache/DCTouchRange.html">DCTouchRange</A></TH>
174<TD>Loads specified range of memory into the cache.</TD>
175    </TR>
176    <TR>
177<TH nowrap><A href="Cache/DCUnfreeze.html">DCUnfreeze</A></TH>
178<TD>Cancels the effect of the <code>DCFreeze</code> function.</TD>
179    </TR>
180    <TR>
181<TH nowrap><A href="Cache/DCZeroRange.html">DCZeroRange</A></TH>
182<TD>Loads the range of memory into the cache and sets all cache blocks to zero.</TD>
183    </TR>
184  </TBODY>
185</TABLE>
186
187<H3>Instruction Cache</H3>
188<TABLE class="api_list" border="1" >
189  <TBODY>
190    <TR>
191<TH nowrap><A href="Cache/ICFreeze.html">ICFreeze</A></TH>
192<TD>Current contents of the L1 instruction cache are locked and will not be invalidated.</TD>
193    </TR>
194    <TR>
195<TH nowrap><A href="Cache/ICInvalidateRange.html">ICInvalidateRange</A></TH>
196<TD>Invalidates the specified region of the instruction cache.</TD>
197    </TR>
198    <TR>
199<TH nowrap><A href="Cache/ICUnfreeze.html">ICUnfreeze</A></TH>
200<TD>Cancels the effect of the <code>ICFreeze</code> function.</TD>
201    </TR>
202  </TBODY>
203</TABLE>
204
205<H3>Locked Cache</H3>
206<TABLE class="api_list" border="1" >
207  <TBODY>
208    <TR>
209<TH nowrap><A href="Cache/LCDisable.html">LCDisable</A></TH>
210<TD>Disables the locked cache and returns the cache to the normal 32-KB and 8-way set associative state.</TD>
211    </TR>
212    <TR>
213<TH nowrap><A href="Cache/LCEnable.html">LCEnable</A></TH>
214<TD>Enables the locked cache.</TD>
215    </TR>
216     <TR>
217<TH nowrap><A href="Cache/LCIsEnable.html">LCIsEnable</A></TH>
218<TD>Gets whether the locked cache feature is enabled or disabled.</TD>
219    </TR>
220    <TR>
221<TH nowrap><A href="Cache/LCGetBase.html">LCGetBase</A></TH>
222<TD>Returns a base pointer to the locked cache region.&nbsp;</TD>
223    </TR>
224    <TR>
225<TH nowrap><A href="Cache/LCFlushQueue.html">LCFlushQueue</A></TH>
226<TD>Flushes the DMA queue and issues SYNC until all DMA transfers are committed.</TD>
227    </TR>
228    <TR>
229<TH nowrap><A href="Cache/LCLoadBlocks.html">LCLoadBlocks</A></TH>
230<TD>Places DMA transactions in the queue.</TD>
231    </TR>
232    <TR>
233<TH nowrap><A href="Cache/LCLoadData.html">LCLoadData</A></TH>
234<TD>Places DMA transactions in the queue.</TD>
235    </TR>
236    <TR>
237<TH nowrap><A href="Cache/LCQueueLength.html">LCQueueLength</A></TH>
238<TD>Returns the number of transactions remaining in the DMA queue.&nbsp;</TD>
239    </TR>
240    <TR>
241<TH nowrap><A href="Cache/LCQueueWait.html">LCQueueWait</A></TH>
242<TD>Polls the DMA queue length until it is less than or equal to the specified length.</TD>
243    </TR>
244    <TR>
245<TH nowrap><A href="Cache/LCStoreBlocks.html">LCStoreBlocks</A></TH>
246<TD>Places DMA transactions in the queue.</TD>
247    </TR>
248    <TR>
249<TH nowrap><A href="Cache/LCStoreData.html">LCStoreData</A></TH>
250<TD>Places DMA transactions in the queue.</TD>
251    </TR>
252  </TBODY>
253</TABLE>
254
255<H2><A name="Error">Error</A></H2>
256<TABLE class="api_list" border="1" >
257  <TBODY>
258    <TR>
259<TH nowrap><A href="Error/ASSERT.html">ASSERT</A></TH>
260<TD>Displays messages for debugging.</TD>
261    </TR>
262    <TR>
263<TH nowrap><A href="Error/ASSERTMSG.html">ASSERTMSG</A></TH>
264<TD>Displays messages for debugging (specified as a character string).</TD>
265    </TR>
266    <TR>
267<TH nowrap><A href="Error/OSFatal.html">OSFatal</A></TH>
268<TD>Stops program execution and displays the specified text message on the TV screen.</TD>
269    </TR>
270    <TR>
271<TH nowrap><A href="Error/OSHalt.html">OSHalt</A></TH>
272<TD>Displays the specified character string and stops the OS.</TD>
273    </TR>
274    <TR>
275<TH nowrap><A href="Error/OSReport.html">OSReport</A></TH>
276<TD>A formatted message is displayed in the log window of the debugger.</TD>
277    </TR>
278    <TR>
279<TH nowrap><A href="Error/OSSetErrorHandler.html">OSSetErrorHandler</A></TH>
280<TD>Implements an error handler for the specified error type.</TD>
281    </TR>
282  </TBODY>
283</TABLE>
284
285<H2><A name="OSLog">Saving Debug Output</A></H2>
286<TABLE class="api_list" border="1" >
287  <TBODY>
288    <TR>
289<TH nowrap><A href="OSLog/OSReportDestination.html">OSReportDestination</A></TH>
290<TD>Changes the output destination for the <CODE>OSReport</CODE> log.</TD>
291    </TR>
292    <TR>
293<TH nowrap><A href="OSLog/OSReportFlush.html">OSReportFlush</A></TH>
294<TD>Writes log reports temporarily saved in memory to NAND memory.</TD>
295    </TR>
296  </TBODY>
297</TABLE>
298
299<H2><A name="Exec">Execution</A></H2>
300<TABLE class="api_list" border="1" >
301  <TBODY>
302    <TR>
303<TH nowrap><A href="Reset/OSExec.html">OSExecl</A></TH>
304<TD>Executes new DOL files (argument specified as a list).</TD>
305    </TR>
306    <TR>
307<TH nowrap><A href="Reset/OSExec.html">OSExecv</A></TH>
308<TD>Executes new DOL files (argument specified as an array).</TD>
309    </TR>
310  </TBODY>
311</TABLE>
312
313<H2><A name="FastCast">Fast Cast</A></H2>
314<TABLE class="api_list" border="1" >
315  <TBODY>
316    <TR>
317<TH nowrap><A href="FastCast/OSf32tos16.html">OSf32tos16</A></TH>
318<TD>Fast-converts single-precision floating point values to signed 16-bit integers.</TD>
319    </TR>
320    <TR>
321<TH nowrap><A href="FastCast/OSf32tos8.html">OSf32tos8</A></TH>
322<TD>Fast-converts single-precision floating point values to signed 8-bit integers.</TD>
323    </TR>
324    <TR>
325<TH nowrap><A href="FastCast/OSf32tou16.html">OSf32tou16</A></TH>
326<TD>Fast-converts single-precision floating point values to unsigned 16-bit integers.</TD>
327    </TR>
328    <TR>
329<TH nowrap><A href="FastCast/OSf32tou8.html">OSf32tou8</A></TH>
330<TD>Fast-converts single-precision floating point values to unsigned 8-bit integers.</TD>
331    </TR>
332    <TR>
333<TH nowrap><A href="FastCast/OSInitFastCast.html">OSInitFastCast</A></TH>
334<TD>Sets up the floating point number/integer fast-cast feature.&nbsp;</TD>
335    </TR>
336    <TR>
337<TH nowrap><A href="FastCast/OSs16tof32.html">OSs16tof32</A></TH>
338<TD>Fast-converts signed 16-bit integers to 32-bit floating point values.</TD>
339    </TR>
340    <TR>
341<TH nowrap><A href="FastCast/OSs8tof32.html">OSs8tof32</A></TH>
342<TD>Fast-converts signed 8-bit integers to 32-bit floating point values.</TD>
343    </TR>
344    <TR>
345<TH nowrap><A href="FastCast/OSu16tof32.html">OSu16tof32</A></TH>
346<TD>Fast-converts unsigned 16-bit integers to 32-bit floating point values.</TD>
347    </TR>
348    <TR>
349<TH nowrap><A href="FastCast/OSu8tof32.html">OSu8tof32</A></TH>
350<TD>Fast-converts unsigned 8-bit integers to 32-bit floating point values.</TD>
351    </TR>
352    <TR>
353<TH nowrap><A href="FastCast/OSSetGQR.html">OSSetGQR[n]</A></TH>
354<TD>Sets value to a quantization register GQR in the Broadway CPU.</TD>
355    </TR>
356  </TBODY>
357</TABLE>
358
359<H2><A name="Font">Font</A></H2>
360<TABLE class="api_list" border="1" >
361  <TBODY>
362<!--     <TR>       <TD><B><A href="Font/intro.html">?????????</A></B></TD>       <TD>?? ROM ????????</TD>     </TR> -->
363    <TR>
364<TH nowrap><A href="Font/OSGetFontEncode.html">OSGetFontEncode</A></TH>
365<TD>Checks the encoding method of a character font.</TD>
366    </TR>
367    <TR>
368<TH nowrap><A href="Font/OSGetFontTexel.html">OSGetFontTexel</A></TH>
369<TD>Retrieves the font texel image of the first text character from the specified string.</TD>
370    </TR>
371    <TR>
372<TH nowrap><A href="Font/OSGetFontTexture.html">OSGetFontTexture</A></TH>
373<TD>Gets a pointer to the font texture image of the first text character in the specified string.</TD>
374    </TR>
375    <TR>
376<TH nowrap><A href="Font/OSGetFontWidth.html">OSGetFontWidth</A></TH>
377<TD>Gets the texel width of the first text character in the specified string.</TD>
378    </TR>
379    <TR>
380<TH nowrap><A href="Font/OSInitFont.html">OSInitFont</A></TH>
381<TD>Loads and expands ROM font data.</TD>
382    </TR>
383    <TR>
384<TH nowrap><A href="Font/OSLoadFont.html">OSLoadFont</A></TH>
385<TD>Loads a ROM font.</TD>
386    </TR>
387  </TBODY>
388</TABLE>
389
390<H2><A name="Idle">Idle Function</A></H2>
391<TABLE class="api_list" border="1" >
392  <TBODY>
393    <TR>
394<TH nowrap><A href="Thread/OSGetIdleFunction.html">OSGetIdleFunction</A></TH>
395<TD>Gets the current background execution context.</TD>
396    </TR>
397    <TR>
398<TH nowrap><A href="Thread/OSSetIdleFunction.html">OSSetIdleFunction</A></TH>
399<TD>Generates a background execution context.</TD>
400    </TR>
401  </TBODY>
402</TABLE>
403
404<H2><A name="Initialization">Initialization</A></H2>
405<TABLE class="api_list" border="1" >
406  <TBODY>
407    <TR>
408<TH nowrap><A href="Init/OSGetConsoleSimulatedMem1Size.html">OSGetConsoleSimulatedMem1Size</A></TH>
409<TD>Gets the size of internal main memory (MEM1) that simulates a console.</TD>
410    </TR>
411    <TR>
412<TH nowrap><A href="Init/OSGetConsoleSimulatedMem2Size.html">OSGetConsoleSimulatedMem2Size</A></TH>
413<TD>Gets the size of external memory (MEM2) that simulates a console.</TD>
414    </TR>
415    <TR>
416<TH nowrap><A href="Init/OSGetConsoleType.html">OSGetConsoleType</A></TH>
417<TD>Checks the console type.</TD>
418    </TR>
419    <TR>
420<TH nowrap><A href="Init/OSGetAppGamename.html">OSGetAppGamename</A></TH>
421<TD>Gets the game name.</TD>
422    </TR>
423    <TR>
424<TH nowrap><A href="Init/OSGetAppType.html">OSGetAppType</A></TH>
425<TD>Gets the game type.</TD>
426    </TR>
427    <TR>
428<TH nowrap><A href="Init/OSGetPhysicalMem1Size.html">OSGetPhysicalMem1Size</A></TH>
429<TD>This function is retained for compatibility with older versions. Gets the internal main memory size of the Hollywood that is mounted in development machines.</TD>
430    </TR>
431    <TR>
432<TH nowrap><A href="Init/OSGetPhysicalMem2Size.html">OSGetPhysicalMem2Size</A></TH>
433<TD>Gets the size of the external main memory (GDDR3) that is mounted in development machines.</TD>
434    </TR>
435    <TR>
436<TH nowrap><A href="Init/OSInit.html">OSInit</A></TH>
437<TD>Initializes the OS.&nbsp;</TD>
438    </TR>
439  </TBODY>
440</TABLE>
441
442<H2><A name="Interrupt">Interrupts</A></H2>
443<TABLE class="api_list" border="1" >
444  <TBODY>
445    <TR>
446<TH nowrap><A href="Interrupt/OSDisableInterrupts.html">OSDisableInterrupts</A></TH>
447<TD>Disables external interrupts.</TD>
448    </TR>
449    <TR>
450<TH nowrap><A href="Interrupt/OSEnableInterrupts.html">OSEnableInterrupts</A></TH>
451<TD>Enables external interrupts.</TD>
452    </TR>
453    <TR>
454<TH nowrap><A href="Interrupt/OSRestoreInterrupts.html">OSRestoreInterrupts</A></TH>
455<TD>Restores the interrupt state to a previous state.</TD>
456    </TR>
457  </TBODY>
458</TABLE>
459
460<H2><A name="Memory Allocation">Memory Allocation</A> (MEM Library is recommended)</H2>
461<TABLE class="api_list" border="1" >
462  <TBODY>
463    <TR>
464<TH nowrap><A href="Alloc/OSAddToHeap.html">OSAddToHeap</A></TH>
465<TD>Adds an arbitrary block of memory to the heap.</TD>
466    </TR>
467    <TR>
468<TH nowrap><A href="Alloc/OSAlloc.html">OSAlloc</A></TH>
469<TD>Allocates memory from the current heap.</TD>
470    </TR>
471    <TR>
472<TH nowrap><A href="Alloc/OSAllocFixed.html">OSAllocFixed</A></TH>
473<TD>Allocates the explicitly specified region of memory.</TD>
474    </TR>
475    <TR>
476<TH nowrap><A href="Alloc/OSAllocFromHeap.html">OSAllocFromHeap</A></TH>
477<TD>Allocates memory from the specified heap region.</TD>
478    </TR>
479    <TR>
480<TH nowrap><A href="Alloc/OSCheckHeap.html">OSCheckHeap</A></TH>
481<TD>Checks that the heap region is normal for debugging.</TD>
482    </TR>
483    <TR>
484<TH nowrap><A href="Alloc/OSCreateHeap.html">OSCreateHeap</A></TH>
485<TD>Creates a heap.</TD>
486    </TR>
487    <TR>
488<TH nowrap><A href="Alloc/OSDestroyHeap.html">OSDestroyHeap</A></TH>
489<TD>Destroys a heap.</TD>
490    </TR>
491    <TR>
492<TH nowrap><A href="Alloc/OSDumpHeap.html">OSDumpHeap</A></TH>
493<TD>Dumps statistical information and elements for the heap region.</TD>
494    </TR>
495    <TR>
496<TH nowrap><A href="Alloc/OSFree.html">OSFree</A></TH>
497<TD>Frees memory referenced by a pointer to the current heap.</TD>
498    </TR>
499    <TR>
500<TH nowrap><A href="Alloc/OSFreeToHeap.html">OSFreeToHeap</A></TH>
501<TD>Returns freed memory to the specified heap.</TD>
502    </TR>
503    <TR>
504<TH nowrap><A href="Alloc/OSInitAlloc.html">OSInitAlloc</A></TH>
505<TD>Initializes memory allocation services and the arena in which all heaps will reside.&nbsp;</TD>
506    </TR>
507    <TR>
508<TH nowrap><A href="Alloc/OSSetCurrentHeap.html">OSSetCurrentHeap</A></TH>
509<TD>Sets the current heap.</TD>
510    </TR>
511  </TBODY>
512</TABLE>
513
514<H2><A name="Memory Protection">Memory Protection</A></H2>
515<TABLE class="api_list" border="1" >
516  <TBODY>
517    <TR>
518<TH nowrap><A href="Mem_Protection/OSProtectRange.html">OSProtectRange</A></TH>
519<TD>Sets main memory access protection for the specified region.</TD>
520    </TR>
521    <TR>
522<TH nowrap><A href="Mem_Protection/OSDisableCodeExecOnMEM1Hi8MB.html">OSDisableCodeExecOnMEM1Hi8MB</A></TH>
523<TD>Disables code execution in the 8MB region of MEM1's second half.</TD>
524    </TR>
525    <TR>
526<TH nowrap><A href="Mem_Protection/OSDisableCodeExecOnMEM1Hi16MB.html">OSDisableCodeExecOnMEM1Hi16MB</A></TH>
527<TD>Disables code execution in the 16MB region of MEM1's second half.</TD>
528    </TR>
529    <TR>
530<TH nowrap><A href="Mem_Protection/OSEnableCodeExecOnMEM2Lo8MB.html">OSEnableCodeExecOnMEM2Lo8MB</A></TH>
531<TD>Enables code execution in the leading 8MB region of MEM2.</TD>
532    </TR>
533    <TR>
534<TH nowrap><A href="Mem_Protection/OSEnableCodeExecOnMEM2Lo16MB.html">OSEnableCodeExecOnMEM2Lo16MB</A></TH>
535<TD>Enables code execution in the leading 16MB region of MEM2.</TD>
536    </TR>
537  </TBODY>
538</TABLE>
539
540<H2><A name="Reset">Reset</A></H2>
541<TABLE class="api_list" border="1" >
542  <TBODY>
543<!--     <TR>       <TH nowrap><A href="Reset/intro.html"><B>?????????</B></A></TH>       <TD>??????�???????????????</TD>     </TR> -->
544    <TR>
545<TH nowrap><A href="Reset/OSIsRestart.html">OSIsRestart</A></TH>
546<TD>Checks whether boot up was from a restart.</TD>
547    </TR>
548    <TR>
549<TH nowrap><A href="Reset/OSGetResetCode.html">OSGetResetCode</A></TH>
550<TD>Returns the reset code.</TD>
551    </TR>
552    <TR>
553<TH nowrap><A href="Reset/OSGetSaveRegion.html">OSGetSaveRegion</A></TH>
554<TD>Gets the region specified by <CODE>OSSetSaveRegion</CODE>.</TD>
555    </TR>
556    <TR>
557<TH nowrap><A href="Reset/OSGetSavedRegion.html">OSGetSavedRegion</A></TH>
558<TD>Gets the region specified by <CODE>OSSetSaveRegion</CODE>.</TD>
559    </TR>
560    <TR>
561<TH nowrap><A href="Reset/OSSetSaveRegion.html">OSSetSaveRegion</A></TH>
562<TD>Sets a region that must not be cleared by <CODE>OSInit</CODE> after restart.</TD>
563    </TR>
564    <TR>
565<TH nowrap><A href="Reset/OSRebootSystem.html">OSRebootSystem</A></TH>
566<TD>Restarts (hot resets) the system.</TD>
567    </TR>
568    <TR>
569<TH nowrap><A href="Reset/OSRestart.html">OSRestart</A></TH>
570<TD>Restarts the application.</TD>
571    </TR>
572    <TR>
573<TH nowrap><A href="Reset/OSShutdownSystem.html">OSShutdownSystem</A></TH>
574<TD>Terminates execution of the applications and turns off the system power (shutdown).</TD>
575    </TR>
576  </TBODY>
577</TABLE>
578
579<H2><A name="Reset Button">RESET Button</A></H2>
580<TABLE class="api_list" border="1" >
581  <TBODY>
582    <TR>
583<TH nowrap><A href="Resetbutton/OSGetResetButtonState.html">OSGetResetButtonState</A></TH>
584<TD>Checks the current state of the RESET Button.</TD>
585    </TR>
586    <TR>
587<TH nowrap><A href="Resetbutton/OSSetResetCallback.html">OSSetResetCallback</A></TH>
588<TD>Registers a one-time reset callback.</TD>
589    </TR>
590    <TR>
591<TH nowrap><A href="Resetbutton/OSSetPowerCallback.html">OSSetPowerCallback</A></TH>
592<TD>Registers a one-time power button callback.</TD>
593    </TR>
594  </TBODY>
595</TABLE>
596
597<H2><A name="Relocatable">Relocatable Module System</A> (You can also use the RSO library)</H2>
598<TABLE class="api_list" border="1" >
599  <TBODY>
600    <TR>
601<TH nowrap><A href="Rel/OSLink.html">OSLink</A></TH>
602<TD>Links the specified module.</TD>
603    </TR>
604    <TR>
605<TH nowrap><A href="Rel/OSLink.html">OSLinkFixed</A></TH>
606<TD>Links the specified module and releases some memory that the relocatable module occupies.</TD>
607    </TR>
608    <TR>
609<TH nowrap><A href="Rel/OSUnlink.html">OSUnlink</A></TH>
610<TD>Unlinks the specified module.</TD>
611    </TR>
612    <TR>
613<TH nowrap><A href="Rel/OSSearchModule.html">OSSearchModule</A></TH>
614<TD>Searches for the module which includes the specified address.</TD>
615    </TR>
616    <TR>
617<TH nowrap><A href="Rel/OSSetStringTable.html">OSSetStringTable</A></TH>
618<TD>Specifies the module string table location.</TD>
619    </TR>
620  </TBODY>
621</TABLE>
622
623<H2><A name="Stack">Stack</A></H2>
624<TABLE class="api_list" border="1" >
625  <TBODY>
626    <TR>
627<TH nowrap><A href="Stack/OSClearStack.html">OSClearStack</A></TH>
628<TD>Sets specified value on the stack of the thread being called.</TD>
629    </TR>
630    <TR>
631<TH nowrap><A href="Stack/OSGetStackPointer.html">OSGetStackPointer</A></TH>
632<TD>Gets the current stack pointer address (r1).</TD>
633    </TR>
634    <TR>
635<TH nowrap><A href="Stack/OSSwitchFiber.html">OSSwitchFiber</A></TH>
636<TD>Executes a function that uses the new stack.</TD>
637    </TR>
638    <TR>
639<TH nowrap><A href="Stack/OSSwitchFiberEx.html">OSSwitchFiberEx</A></TH>
640<TD>Executes a function that uses the new stack. The function can pass an argument.</TD>
641    </TR>
642    <TR>
643<TH nowrap><A href="Stack/OSSwitchStack.html">OSSwitchStack</A></TH>
644<TD>Switches the current stack pointer.</TD>
645    </TR>
646  </TBODY>
647</TABLE>
648
649<H2><A name="Stopwatch">Stopwatch</A></H2>
650<TABLE class="api_list" border="1" >
651  <TBODY>
652    <TR>
653<TH nowrap><A href="Stopwatch/OSInitStopwatch.html">OSInitStopwatch</A></TH>
654<TD>Initializes designated stopwatch structure.</TD>
655    </TR>
656    <TR>
657<TH nowrap><A href="Stopwatch/OSStartStopwatch.html">OSStartStopwatch</A></TH>
658<TD>Records the current time (starts the stopwatch).</TD>
659    </TR>
660    <TR>
661<TH nowrap><A href="Stopwatch/OSStopStopwatch.html">OSStopStopwatch</A></TH>
662<TD>Records the current time (stops the stopwatch). Updates the cumulative time from <CODE>OSStartStopwatch</CODE>.</TD>
663    </TR>
664    <TR>
665<TH nowrap><A href="Stopwatch/OSCheckStopwatch.html">OSCheckStopwatch</A></TH>
666<TD>Checks whether the stopwatch function is running.</TD>
667    </TR>
668    <TR>
669<TH nowrap><A href="Stopwatch/OSResetStopwatch.html">OSResetStopwatch</A></TH>
670<TD>Initializes designated stopwatch structure.</TD>
671    </TR>
672    <TR>
673<TH nowrap><A href="Stopwatch/OSDumpStopwatch.html">OSDumpStopwatch</A></TH>
674<TD>Writes to the debug channel some information sets (interval, total time, and so on) measured by the stopwatch.</TD>
675    </TR>
676  </TBODY>
677</TABLE>
678
679<H2><A name="Synchronization">Synchronization</A></H2>
680<TABLE class="api_list" border="1" >
681  <TBODY>
682    <TR>
683<TH nowrap><A href="Synchronization/PPCSync.html">PPCSync</A></TH>
684<TD>Executes a standard PowerPC sync instruction.</TD>
685    </TR>
686  </TBODY>
687</TABLE>
688
689<H2><A name="Time">Time</A></H2>
690<TABLE class="api_list" border="1" >
691  <TBODY>
692    <TR>
693<TH nowrap><A href="Time/OSDiffTick.html">OSDiffTick</A></TH>
694<TD>Returns the difference between two tick values.</TD>
695    </TR>
696    <TR>
697<TH nowrap><A href="Time/OSGetTime.html">OSGetTime</A></TH>
698<TD>Gets the value of the time base register (64-bit width) in units of <CODE>OS_TIMER_CLOCK</CODE> Hz.</TD>
699    </TR>
700    <TR>
701<TH nowrap><A href="Time/OSGetTick.html">OSGetTick</A></TH>
702<TD>Gets a tick (gets the 32 low order bits of Broadway's time base register).</TD>
703    </TR>
704    <TR>
705<TH nowrap><A href="Time/OSTicksToCycles.html">OSTicksToCycles</A></TH>
706<TD>Converts time from ticks to CPU core cycle units (<CODE>OS_CORE_CLOCK</CODE> Hz).</TD>
707    </TR>
708    <TR>
709<TH nowrap><A href="Time/OSTicksToSeconds.html">OSTicksToSeconds</A></TH>
710<TD>Converts value from ticks to seconds.</TD>
711    </TR>
712    <TR>
713<TH nowrap><A href="Time/OSTicksToMilliseconds.html">OSTicksToMilliseconds</A></TH>
714<TD>Converts value from ticks to milliseconds.</TD>
715    </TR>
716    <TR>
717<TH nowrap><A href="Time/OSTicksToMicroseconds.html">OSTicksToMicroseconds</A></TH>
718<TD>Converts value from ticks to microseconds.</TD>
719    </TR>
720    <TR>
721<TH nowrap><A href="Time/OSTicksToNanoseconds.html">OSTicksToNanoseconds</A></TH>
722<TD>Converts value from ticks to nanoseconds.</TD>
723    </TR>
724    <TR>
725<TH nowrap><A href="Time/OSSecondsToTicks.html">OSSecondsToTicks</A></TH>
726<TD>Converts value from seconds to ticks.</TD>
727    </TR>
728    <TR>
729<TH nowrap><A href="Time/OSMillisecondsToTicks.html">OSMillisecondsToTicks</A></TH>
730<TD>Converts value from milliseconds to ticks.</TD>
731    </TR>
732    <TR>
733<TH nowrap><A href="Time/OSMicrosecondsToTicks.html">OSMicrosecondsToTicks</A></TH>
734<TD>Converts value from microseconds to ticks.</TD>
735    </TR>
736    <TR>
737<TH nowrap><A href="Time/OSNanosecondsToTicks.html">OSNanosecondsToTicks</A></TH>
738<TD>Converts value from nanoseconds to ticks.</TD>
739    </TR>
740    <TR>
741<TH nowrap><A href="Time/OSCalendarTimeToTicks.html">OSCalendarTimeToTicks</A></TH>
742<TD>Converts value from calendar time to ticks (<code>OS_TIMER_CLOCK</code> Hz).</TD>
743    </TR>
744    <TR>
745<TH nowrap><A href="Time/OSTicksToCalendarTime.html">OSTicksToCalendarTime</A></TH>
746<TD>Converts value from ticks (<code>OS_TIMER_CLOCK</code> Hz) to calendar time.</TD>
747    </TR>
748  </TBODY>
749</TABLE>
750
751<H2><A name="Thread">Thread</A></H2>
752<TABLE class="api_list" border="1" >
753  <TBODY>
754    <TR>
755<TH nowrap><A href="Thread/OSCancelThread.html">OSCancelThread</A></TH>
756<TD>Stops the specified thread.&nbsp;</TD>
757    </TR>
758    <TR>
759<TH nowrap><A href="Thread/OSCheckActiveThreads.html">OSCheckActiveThreads</A></TH>
760<TD>Executes as many checks for normalcy as possible by tracing an active thread queue.</TD>
761    </TR>
762    <TR>
763<TH nowrap><A href="Thread/OSCreateThread.html">OSCreateThread</A></TH>
764<TD>Creates a new thread.</TD>
765    </TR>
766    <TR>
767<TH nowrap><A href="Thread/OSDetachThread.html">OSDetachThread</A></TH>
768<TD>Sets the detached attribute for the specified thread.&nbsp;</TD>
769    </TR>
770    <TR>
771<TH nowrap><A href="Thread/OSDisableScheduler.html">OSDisableScheduler</A></TH>
772<TD>Stops thread rescheduling temporarily.</TD>
773    </TR>
774    <TR>
775<TH nowrap><A href="Thread/OSEnableScheduler.html">OSEnableScheduler</A></TH>
776<TD>Restarts thread rescheduling.</TD>
777    </TR>
778    <TR>
779<TH nowrap><A href="Thread/OSExitThread.html">OSExitThread</A></TH>
780<TD>Ends the current (called) thread and switches to the next executable thread.</TD>
781    </TR>
782    <TR>
783<TH nowrap><A href="Thread/OSGetCurrentThread.html">OSGetCurrentThread</A></TH>
784<TD>Gets the pointer to the current thread.</TD>
785    </TR>
786    <TR>
787<TH nowrap><A href="Thread/OSGetThreadPriority.html">OSGetThreadPriority</A></TH>
788<TD>Returns the priority order that will become the scheduling base for the specified thread.</TD>
789    </TR>
790    <TR>
791<TH nowrap><A href="Thread/OSSetThreadSpecific.html">OSGetThreadSpecific</A></TH>
792<TD>Gets data specific to the thread that called this function.</TD>
793    </TR>
794    <TR>
795<TH nowrap><A href="Thread/OSInitThreadQueue.html">OSInitThreadQueue</A></TH>
796<TD>Initializes the thread queue that other thread functions use.</TD>
797    </TR>
798    <TR>
799<TH nowrap><A href="Thread/OSIsThreadSuspended.html">OSIsThreadSuspended</A></TH>
800<TD>Checks whether the specified thread is suspended.</TD>
801    </TR>
802    <TR>
803<TH nowrap><A href="Thread/OSIsThreadTerminated.html">OSIsThreadTerminated</A></TH>
804<TD>Checks whether the specified thread is stopped.</TD>
805    </TR>
806    <TR>
807<TH nowrap><A href="Thread/OSJoinThread.html">OSJoinThread</A></TH>
808<TD>Waits for the specified thread to terminate and reproduces information for that thread.</TD>
809    </TR>
810    <TR>
811<TH nowrap><A href="Thread/OSResumeThread.html">OSResumeThread</A></TH>
812<TD>Resumes the specified thread.</TD>
813    </TR>
814    <TR>
815<TH nowrap><A href="Thread/OSSetThreadPriority.html">OSSetThreadPriority</A></TH>
816<TD>Sets the priority level used as the scheduling base.</TD>
817    </TR>
818    <TR>
819<TH nowrap><A href="Thread/OSSetThreadSpecific.html">OSSetThreadSpecific</A></TH>
820<TD>Gets data specific to the thread that called this function.</TD>
821    </TR>
822    <TR>
823<TH nowrap><A href="Thread/OSSetSwitchThreadCallback.html">OSSetSwitchThreadCallback</A></TH>
824<TD>Registers a specified callback function.</TD>
825    </TR>
826    <TR>
827<TH nowrap><A href="Thread/OSSleepThread.html">OSSleepThread</A></TH>
828<TD>Suspends the current thread and inserts it into the specified thread queue.</TD>
829    </TR>
830    <TR>
831<TH nowrap><A href="Thread/OSSuspendThread.html">OSSuspendThread</A></TH>
832<TD>Suspends the specified thread.</TD>
833    </TR>
834    <TR>
835<TH nowrap><A href="Thread/OSWakeupThread.html">OSWakeupThread</A></TH>
836<TD>Wakes up all the threads in the specified thread queue.&nbsp;</TD>
837    </TR>
838    <TR>
839<TH nowrap><A href="Thread/OSYieldThread.html">OSYieldThread</A></TH>
840<TD>Performs thread rescheduling.</TD>
841    </TR>
842    <TR>
843<TH nowrap><A href="Thread/OSSleepMicroseconds.html">OSSleepMicroseconds</A></TH>
844<TD>Temporarily stops the current thread and sets executable status after the specified number of microseconds have elapsed.</TD>
845    </TR>
846    <TR>
847<TH nowrap><A href="Thread/OSSleepMilliseconds.html">OSSleepMilliseconds</A></TH>
848<TD>Temporarily stops the current thread and sets executable status after the specified number of milliseconds have elapsed.</TD>
849    </TR>
850    <TR>
851<TH nowrap><A href="Thread/OSSleepNanoseconds.html">OSSleepNanoseconds</A></TH>
852<TD>Temporarily stops the current thread and sets executable status after the specified number of nanoseconds have elapsed.</TD>
853    </TR>
854    <TR>
855<TH nowrap><A href="Thread/OSSleepSeconds.html">OSSleepSeconds</A></TH>
856<TD>Temporarily stops the current thread and sets executable status after the specified number of seconds have elapsed.</TD>
857    </TR>
858    <TR>
859<TH nowrap><A href="Thread/OSSleepTicks.html">OSSleepTicks</A></TH>
860<TD>Temporarily stops the current thread and sets executable status after the specified number of ticks have elapsed.</TD>
861    </TR>
862  </TBODY>
863</TABLE>
864
865<H2><A name="ThreadSynchronization">Thread Synchronization</A></H2>
866<H3>Mutexes and Condition Variables</H3>
867<TABLE class="api_list" border="1" >
868  <TBODY>
869    <TR>
870<TH nowrap><A href="Thread_Synchronization/OSInitCond.html">OSInitCond</A></TH>
871<TD>Initializes condition variables.&nbsp;</TD>
872    </TR>
873    <TR>
874<TH nowrap><A href="Thread_Synchronization/OSInitMutex.html">OSInitMutex</A></TH>
875<TD>Initializes mutexes.</TD>
876    </TR>
877    <TR>
878<TH nowrap><A href="Thread_Synchronization/OSLockMutex.html">OSLockMutex</A></TH>
879<TD>Attempts to lock the mutex that <CODE>mutex</CODE> specifies.</TD>
880    </TR>
881    <TR>
882<TH nowrap><A href="Thread_Synchronization/OSSignalCond.html">OSSignalCond</A></TH>
883<TD>Unblocks all the threads waiting on the specified condition variable.&nbsp;</TD>
884    </TR>
885    <TR>
886<TH nowrap><A href="Thread_Synchronization/OSTryLockMutex.html">OSTryLockMutex</A></TH>
887<TD>The calling thread tries to lock the mutex.</TD>
888    </TR>
889    <TR>
890<TH nowrap><A href="Thread_Synchronization/OSUnlockMutex.html">OSUnlockMutex</A></TH>
891<TD>The calling thread unlocks the mutex.</TD>
892    </TR>
893    <TR>
894<TH nowrap><A href="Thread_Synchronization/OSWaitCond.html">OSWaitCond</A></TH>
895<TD>Blocks the calling thread on the condition variable and releases the mutex.</TD>
896    </TR>
897  </TBODY>
898</TABLE>
899
900<H3>Message Queues</H3>
901<TABLE class="api_list" border="1" >
902  <TBODY>
903    <TR>
904<TH nowrap><A href="Thread_Synchronization/OSInitMessageQueue.html">OSInitMessageQueue</A></TH>
905<TD>Initializes the message queue structure.</TD>
906    </TR>
907    <TR>
908<TH nowrap><A href="Thread_Synchronization/OSJamMessage.html">OSJamMessage</A></TH>
909<TD>Inserts a message at the start of the specified message queue.</TD>
910    </TR>
911    <TR>
912<TH nowrap><A href="Thread_Synchronization/OSReceiveMessage.html">OSReceiveMessage</A></TH>
913<TD>Extracts a message from the message queue.</TD>
914    </TR>
915    <TR>
916<TH nowrap><A href="Thread_Synchronization/OSSendMessage.html">OSSendMessage</A></TH>
917<TD>Inserts a message at the end of the specified message queue.</TD>
918    </TR>
919  </TBODY>
920</TABLE>
921
922<H3>Semaphores</H3>
923<TABLE class="api_list" border="1" >
924  <TBODY>
925    <TR>
926<TH nowrap><A href="Thread_Synchronization/OSGetSemaphoreCount.html">OSGetSemaphoreCount</A></TH>
927<TD>Returns the current semaphore count.</TD>
928    </TR>
929    <TR>
930<TH nowrap><A href="Thread_Synchronization/OSInitSemaphore.html">OSInitSemaphore</A></TH>
931<TD>Initializes semaphores.</TD>
932    </TR>
933    <TR>
934<TH nowrap><A href="Thread_Synchronization/OSSignalSemaphore.html">OSSignalSemaphore</A></TH>
935<TD>Increments the specified semaphore count.</TD>
936    </TR>
937    <TR>
938<TH nowrap><A href="Thread_Synchronization/OSTryWaitSemaphore.html">OSTryWaitSemaphore</A></TH>
939<TD>If the semaphore count is greater than zero, the count is decremented.</TD>
940    </TR>
941    <TR>
942<TH nowrap><A href="Thread_Synchronization/OSWaitSemaphore.html">OSWaitSemaphore</A></TH>
943<TD>Decrements the specified semaphore count.</TD>
944    </TR>
945  </TBODY>
946</TABLE>
947
948<H2><A name="Hash">Hash</A></H3>
949<TABLE class="api_list" border="1" >
950  <TBODY>
951    <TR>
952<TH nowrap><A href="Hash/OSCalcCRC.html"><CODE>OSCalcCRC16</CODE></A></TH>
953<TD>Returns a 16-bit CRC value.</TD>
954    </TR>
955    <TR>
956<TH nowrap><A href="Hash/OSCalcCRC.html"><CODE>OSCalcCRC32</CODE></A></TH>
957<TD>Returns a 32-bit CRC value.</TD>
958    </TR>
959
960  </TBODY>
961</TABLE>
962
963<H2><A name="WiiMenu">Transitions to the Wii Menu or NAND Applications</A></H2>
964<TABLE class="api_list" border="1" >
965  <TBODY>
966    <TR>
967<TH nowrap><A href="WiiMenu/OSReturnToMenu.html">OSReturnToMenu</A></TH>
968<TD>Terminates execution of the applications and restores execution to the system menu.</TD>
969    </TR>
970    <TR>
971<TH nowrap><A href="WiiMenu/OSReturnToDataManager.html">OSReturnToDataManager</A></TH>
972<TD>Ends running applications and moves execution to the Data Management screen of System Menu.</TD>
973    </TR>
974    <TR>
975<TH nowrap><A href="WiiMenu/OSReturnToSetting.html">OSReturnToSetting</A></TH>
976<TD>Ends running applications and moves execution to the System Settings screen of System Menu.</TD>
977    </TR>
978    <TR>
979<TH nowrap><A href="Reset/OSLaunchManualViewer.html">OSLaunchManualViewer</A></TH>
980<TD>Ends running applications and transfers execution to the Manual viewer. <font color="red"><B>It cannot be used with disc applications.</B></font></TD>
981    </TR>
982  </TBODY>
983</TABLE>
984
985<br><br><br>
986
987<hr><p>CONFIDENTIAL</p></body>
988</HTML>