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>