1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <link rel="stylesheet" href="../../css/manpage.css" type="text/css" /> 7 <style type="text/css"><!-- 8 span.static_style 9 { 10 font-size : 8pt; 11 color : white; 12 font-weight : bold; 13 background : #44f; 14 border-left : solid 1px #aaf; 15 border-top : solid 1px #aaf; 16 border-right : solid 1px #00c; 17 border-bottom : solid 1px #00c; 18 padding-left : 2px; 19 padding-right : 2px; 20 } 21 22 span.virtual_style 23 { 24 font-size : 8pt; 25 color : white; 26 font-weight : bold; 27 background : #0a0; 28 border-left : solid 1px #0f0; 29 border-top : solid 1px #0f0; 30 border-right : solid 1px #060; 31 border-bottom : solid 1px #060; 32 padding-left : 2px; 33 padding-right : 2px; 34 } 35 36 span.protected_style 37 { 38 font-size : 8pt; 39 color : white; 40 font-weight : bold; 41 background : #444; 42 border-left : solid 1px #ccc; 43 border-top : solid 1px #ccc; 44 border-right : solid 1px #222; 45 border-bottom : solid 1px #222; 46 padding-left : 2px; 47 padding-right : 2px; 48 } 49 --></style> 50<title>nn::os</title> 51 </head> 52 <body> 53<h1><CODE><a href="../../nn/Overview.html">nn</a>::os</CODE> Namespace</h1> 54<h2>Description</h2> 55 <div class="section"> 56<p>The namespace of the operating system library.</p><p>This namespace class is thread-safe between instances. In addition, it is also thread-safe within some instances.</p><!-- write here --></div> 57 <a name="namespace" id="namespace"> 58<h2>Namespaces</h2> 59 <div class="section"> 60 <table class="members"> 61 <tr> 62 <th> 63<a href="../../nn/os/ARM/Overview.html"><CODE>nn::os::ARM</CODE></a> 64 </th> 65<td>The namespace of the <a href="../../nn/os/ARM/Overview.html">ARM</a> operating system library. <linebreak />(This namespace can also be written without the <CODE>::ARM</CODE> portion.)</td> 66 </tr> 67 <tr> 68 <th> 69<a href="../../nn/os/CTR/Overview.html"><CODE>nn::os::CTR</CODE></a> 70 </th> 71<td>The namespace of the <a href="../../nn/os/CTR/Overview.html">CTR</a> operating system library.<linebreak />(This namespace can also be written without the <CODE>::CTR</CODE> part.)</td> 72 </tr> </table> 73 </div> 74 </a> <a name="class" id="class"> 75<h2>Classes</h2> 76 <div class="section"> 77 <table class="members"> 78 <tr> 79<th class="category" colspan="2">Time</th> 80 </tr> 81 <tr> 82 <th> 83<a href="../../nn/os/Alarm/Overview.html"><CODE>nn::os::Alarm</CODE></a> 84 </th> 85<td>Class for handling alarms.</td> 86 </tr> 87 <tr> 88 <th> 89<a href="../../nn/os/Tick/Overview.html"><CODE>nn::os::Tick</CODE></a> 90 </th> 91<td>Class for handling system ticks.</td> 92 </tr> 93 <tr> 94 <th> 95<a href="../../nn/os/Timer/Overview.html"><CODE>nn::os::Timer</CODE></a> 96 </th> 97<td>Class for representing timers.</td> 98 </tr> 99 <tr> 100<th class="category" colspan="2">Thread</th> 101 </tr> 102 <tr> 103 <th> 104<a href="../../nn/os/AutoStackManager/Overview.html"><CODE>nn::os::AutoStackManager</CODE></a> 105 </th> 106<td>Stack manager interface used by the <CODE><a href="../../nn/os/Thread/StartUsingAutoStack.html">Thread::StartUsingAutoStack</a></CODE> function.</td> 107 </tr> 108 <tr> 109 <th> 110<a href="../../nn/os/ManagedThread/Overview.html">nn::os::ManagedThread</a> 111 </th> 112<td>Utility class with additional features to the standard <CODE><a href="../../nn/os/Thread/Overview.html">Thread</a></CODE>.</td> 113 </tr> 114 <tr> 115 <th> 116<a href="../../nn/os/SimpleAutoStackManager/Overview.html"><CODE>nn::os::SimpleAutoStackManager</CODE></a> 117 </th> 118<td>Implementation of <CODE><a href="../../nn/os/AutoStackManager/Overview.html">AutoStackManager</a></CODE> using <CODE><a href="../../nn/fnd/IAllocator/Overview.html">fnd::IAllocator</a></CODE>.</td> 119 </tr> 120 <tr> 121 <th> 122<a href="../../nn/os/StackMemoryAutoStackManager/Overview.html"><CODE>nn::os::StackMemoryAutoStackManager</CODE></a> 123 </th> 124<td>Implementation of <CODE><a href="../../nn/os/AutoStackManager/Overview.html">AutoStackManager</a></CODE> using <CODE><a href="../../nn/os/StackMemory/Overview.html">StackMemory</a></CODE>.</td> 125 </tr> 126 <tr> 127 <th> 128<a href="../../nn/os/Thread/Overview.html"><CODE>nn::os::Thread</CODE></a> 129 </th> 130<td>Class for representing threads.</td> 131 </tr> 132 <tr> 133 <th> 134<a href="../../nn/os/StackBuffer/Overview.html"><CODE>nn::os::StackBuffer</CODE></a> 135 </th> 136<td>Class template used for placing the thread stack in locations such as within a static region or a structure.</td> 137 </tr> 138 <tr> 139 <th> 140<a href="../../nn/os/ThreadLocalStorage/Overview.html"><CODE>nn::os::ThreadLocalStorage</CODE></a> 141 </th> 142<td>Class that represents thread-local storage with the same size as the <CODE>uptr</CODE> type.</td> 143 </tr> 144 <tr> 145<th class="category" colspan="2">Synchronization Mechanisms</th> 146 </tr> 147 <tr> 148 <th> 149<a href="../../nn/os/BlockingQueue/Overview.html"><CODE>nn::os::BlockingQueue</CODE></a> 150 </th> 151<td>Class for handling blocking queues.</td> 152 </tr> 153 <tr> 154 <th> 155<a href="../../nn/os/SafeBlockingQueue/Overview.html"><CODE>nn::os::SafeBlockingQueue</CODE></a> 156 </th> 157<td>Class for handling blocking queues.</td> 158 </tr> 159 <tr> 160 <th> 161<a href="../../nn/os/CriticalSection/Overview.html"><CODE>nn::os::CriticalSection</CODE></a> 162 </th> 163<td>Class for handling critical sections. Critical sections are synchronization objects used for providing mutual exclusion.</td> 164 </tr> 165 <tr> 166 <th> 167<a href="../../nn/os/Event/Overview.html"><CODE>nn::os::Event</CODE></a> 168 </th> 169<td>Class for handling events. Events are synchronization objects that send notification that an event has occurred.</td> 170 </tr> 171 <tr> 172 <th> 173<a href="../../nn/os/LightBarrier/Overview.html"><CODE>nn::os::LightBarrier</CODE></a> 174 </th> 175<td>Synchronization mechanism that waits for the arrival of multiple threads.</td> 176 </tr> 177 <tr> 178 <th> 179<a href="../../nn/os/LightEvent/Overview.html"><CODE>nn::os::LightEvent</CODE></a> 180 </th> 181<td>Synchronization mechanism for communicating flags between threads.</td> 182 </tr> 183 <tr> 184 <th> 185<a href="../../nn/os/LightSemaphore/Overview.html"><CODE>nn::os::LightSemaphore</CODE></a> 186 </th> 187<td>Synchronization mechanism for mutual exclusion of resources between threads.</td> 188 </tr> 189 <tr> 190 <th> 191<a href="../../nn/os/Mutex/Overview.html"><CODE>nn::os::Mutex</CODE></a> 192 </th> 193<td>Class for handling mutexes. Mutexes are synchronization objects used for providing mutual exclusion.</td> 194 </tr> 195 <tr> 196 <th> 197<a href="../../nn/os/Semaphore/Overview.html"><CODE>nn::os::Semaphore</CODE></a> 198 </th> 199<td>Class for handling semaphores. Semaphores are synchronization objects that have counters.</td> 200 </tr> 201 <tr> 202 <th> 203<a href="../../nn/os/WaitObject/Overview.html"><CODE>nn::os::WaitObject</CODE></a> 204 </th> 205<td>Base class for objects that are able to wait.</td> 206 </tr> 207 <tr> 208<th class="category" colspan="2">Memory Management</th> 209 </tr> 210 <tr> 211 <th> 212<a href="../../nn/os/MemoryBlock/Overview.html"><CODE>nn::os::MemoryBlock</CODE></a> 213 </th> 214<td>Class allocating memory from the specified region in the heap.</td> 215 </tr> 216 <tr> 217 <th> 218<a href="../../nn/os/MemoryBlockBase/Overview.html"><CODE>nn::os::MemoryBlockBase</CODE></a> 219 </th> 220<td>Base class for classes handling contiguous memory regions.</td> 221 </tr> 222 <tr> 223 <th> 224<a href="../../nn/os/StackMemory/Overview.html"><CODE>nn::os::StackMemory</CODE></a> 225 </th> 226<td>Class that partitions a specified memory region for use as a stack.</td> 227 </tr> 228 <tr> 229 <th> 230<a href="../../nn/os/StackMemoryBlock/Overview.html"><CODE>nn::os::StackMemoryBlock</CODE></a> 231 </th> 232<td>Class allocating stack memory from the heap in the specified region.</td> 233 </tr> 234 <tr> 235<th class="category" colspan="2">Other</th> 236 </tr> 237 <tr> 238 <th> 239<a href="../../nn/os/HandleObject/Overview.html"><CODE>nn::os::HandleObject</CODE></a> 240 </th> 241<td>Abstract base class that represents an object managed by the OS.</td> 242 </tr> </table> 243 </div> 244 </a> <a name="struct" id="struct"> 245<h2>Structures</h2> 246 <div class="section"> 247 <table class="members"> 248 <tr> 249 <th> 250<a href="../../nn/os/LockPolicy/Overview.html"><CODE>nn::os::LockPolicy</CODE></a> 251 </th> 252<td>Container class used for operations related to lock policies.</td> 253 </tr> </table> 254 </div> 255 </a> <a name="typedef" id="typedef"> 256<h2><CODE>typedef</CODE> Definitions</h2> 257 <div class="section"> 258 <table class="members"> 259 <tr> 260 <td width="100" /> 261 <th> 262<a href="../../nn/os/AlarmHandler.html"><CODE>AlarmHandler</CODE></a> 263 </th> 264<td>Type representing handlers that are run for alarms.</td> 265 </tr> </table> 266 </div> 267 </a> <a name="function" id="function"> 268<h2>Functions</h2> 269 <div class="section"> 270 <table class="members"> 271 <tr> 272 <td width="100"> </td> 273 <th> 274<a href="../../nn/os/InitializeAlarmSystem.html"><CODE>InitializeAlarmSystem</CODE></a> 275 </th> 276<td>Initializes the alarm system.</td> 277 </tr> 278 <tr> 279 <td width="100"> </td> 280 <th> 281<a href="../../nn/os/GetAppMemorySize.html"><CODE>GetAppMemorySize</CODE></a> 282 </th> 283<td>Gets the maximum total amount of memory that the application can use.</td> 284 </tr> 285 <tr> 286 <td width="100"> </td> 287 <th> 288<a href="../../nn/os/GetUsingMemorySize.html"><CODE>GetUsingMemorySize</CODE></a> 289 </th> 290<td>Gets the total size of memory currently allocated to the program.</td> 291 </tr> 292 <tr> 293 <td width="100"> </td> 294 <th> 295<a href="../../nn/os/SetupHeapForMemoryBlock.html"><CODE>SetupHeapForMemoryBlock</CODE></a> 296 </th> 297<td>This function sets up the OS to emulate the same memory environment that was used in CTR-SDK 0.9 and prior versions.</td> 298 </tr> 299 <tr> 300 <td width="100"> </td> 301 <th> 302<a href="../../nn/os/GetDeviceMemoryAddress.html"><CODE>GetDeviceMemoryAddress</CODE></a> 303 </th> 304<td>Gets the starting address of the device memory.</td> 305 </tr> 306 <tr> 307 <td width="100"> </td> 308 <th> 309<a href="../../nn/os/SetDeviceMemorySize.html"><CODE>SetDeviceMemorySize</CODE></a> 310 </th> 311<td>Changes the size of the device memory.</td> 312 </tr> 313 <tr> 314 <td width="100"> </td> 315 <th> 316<a href="../../nn/os/GetDeviceMemorySize.html"><CODE>GetDeviceMemorySize</CODE></a> 317 </th> 318<td>Gets the size of the device memory.</td> 319 </tr> 320 <tr> 321 <td width="100"> </td> 322 <th> 323<a href="../../nn/os/GetHeapAddress.html"><CODE>GetHeapAddress</CODE></a> 324 </th> 325<td>Gets the starting address of the heap.</td> 326 </tr> 327 <tr> 328 <td width="100"> </td> 329 <th> 330<a href="../../nn/os/SetHeapSize.html"><CODE>SetHeapSize</CODE></a> 331 </th> 332<td>Changes the size of the heap.</td> 333 </tr> 334 <tr> 335 <td width="100"> </td> 336 <th> 337<a href="../../nn/os/GetHeapSize.html"><CODE>GetHeapSize</CODE></a> 338 </th> 339<td>Gets the size of the heap.</td> 340 </tr> 341 <tr> 342 <td width="100"> </td> 343 <th> 344<a href="../../nn/os/GetCodeRegionAddress.html">GetCodeRegionAddress</a> 345 </th> 346<td>Gets the starting address of the executable code region.</td> 347 </tr> 348 <tr> 349 <td width="100"> </td> 350 <th> 351<a href="../../nn/os/GetCodeRegionSize.html">GetCodeRegionSize</a> 352 </th> 353<td>Gets the size of the executable code region.</td> 354 </tr> 355 <tr> 356 <td width="100"> </td> 357 <th> 358<a href="../../nn/os/InitializeMemoryBlock.html"><CODE>InitializeMemoryBlock</CODE></a> 359 </th> 360<td>Allows use of the <a href="../../nn/os/MemoryBlock/Overview.html"><CODE>MemoryBlock</CODE></a> and <a href="../../nn/os/StackMemoryBlock/Overview.html"><CODE>StackMemoryBlock</CODE></a> classes.</td> 361 </tr> </table> 362 </div> 363 </a> 364<h2>Revision History</h2> 365 <div class="section"> 366 <dl class="history"> 367 <dt>2012/04/23</dt> 368<dd>Categorized the various classes.<br /> 369 </dd> 370 <dt>2010/01/07</dt> 371<dd>Initial version.<br /> 372 </dd> 373 </dl> 374 </div> 375 <hr><p>CONFIDENTIAL</p></body> 376</html>