1 /*---------------------------------------------------------------------------*
2 Project: TwlSDK - OS - include
3 File: arena.h
4
5 Copyright 2003-2008 Nintendo. All rights reserved.
6
7 These coded instructions, statements, and computer programs contain
8 proprietary information of Nintendo of America Inc. and/or Nintendo
9 Company Ltd., and are protected by Federal copyright law. They may
10 not be disclosed to third parties or copied or duplicated in any form,
11 in whole or in part, without the prior written consent of Nintendo.
12
13 $Date:: 2008-09-17#$
14 $Rev: 8556 $
15 $Author: okubata_ryoma $
16
17 *---------------------------------------------------------------------------*/
18
19 #ifndef NITRO_OS_ARENA_H_
20 #define NITRO_OS_ARENA_H_
21
22 #include <nitro/misc.h>
23 #include <nitro/types.h>
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 //--------------------------------------------------------------------------------
30 //---- arena id
31 typedef enum
32 {
33 OS_ARENA_MAIN = 0, // Main RAM, Main-Processor private
34 OS_ARENA_MAIN_SUBPRIV = 1, // Main RAM, Sub-Processor private
35 OS_ARENA_MAINEX = 2, // Extended Main RAM
36 OS_ARENA_ITCM = 3, // ITCM
37 OS_ARENA_DTCM = 4, // DTCM
38 OS_ARENA_SHARED = 5, // Shared Memory
39 OS_ARENA_WRAM_MAIN = 6, // common Work RAM, Main-Processor private
40 OS_ARENA_WRAM_SUB = 7, // common Work RAM, Sub-Processor private
41 OS_ARENA_WRAM_SUBPRIV = 8, // Sub-Processor private Work RAM
42
43 OS_ARENA_MAX = 9
44 }
45 OSArenaId;
46
47 //---- struct of Arena infomation ( 0x4C byte )
48 typedef struct
49 {
50 void *lo[OS_ARENA_MAX];
51 void *hi[OS_ARENA_MAX];
52 //u16 initialized;
53 //u8 padding[2];
54 }
55 OSArenaInfo;
56
57 //---- Arena resource
58 typedef struct OSArenaResource
59 {
60 OSArenaInfo info;
61 }
62 OSArenaResource;
63
64 //================================================================================
65 // INIT
66 //================================================================================
67 /*---------------------------------------------------------------------------*
68 Name: OS_InitArena
69
70 Description: Initialize Arena
71
72 Arguments: None.
73
74 Returns: None.
75 *---------------------------------------------------------------------------*/
76 void OS_InitArena(void);
77
78 /*---------------------------------------------------------------------------*
79 Name: OS_InitArenaEx
80
81 Description: Initialize extended MainRam Arena
82
83 Arguments: None.
84
85 Returns: None.
86 *---------------------------------------------------------------------------*/
87 #ifdef SDK_ARM9
88 void OS_InitArenaEx(void);
89 #endif
90
91
92 //================================================================================
93 // GET ARENA INFO
94 //================================================================================
95 /*---------------------------------------------------------------------------*
96 Name: OS_GetArenaInfo
97
98 Description: Get the pointer of Arena structure
99
100 Arguments: None.
101
102 Returns: the pointer of Arena structure
103 *---------------------------------------------------------------------------*/
104 void *OS_GetArenaInfo(void);
105
106 /*---------------------------------------------------------------------------*
107 Name: OS_GetArenaHi / OS_GetArenaLo
108
109 Description: Get the high/low boundary of the arena
110
111 Arguments: id : arena ID
112
113 Returns: the high/low boundary of the arena
114 *---------------------------------------------------------------------------*/
115 void *OS_GetArenaHi(OSArenaId id);
116 void *OS_GetArenaLo(OSArenaId id);
117
118 /*---------------------------------------------------------------------------*
119 Name: OS_GetInitArenaHi / OS_GetInitArenaLo
120
121 Description: Get the initial high/low boundary of the arena
122
123 Arguments: id : arena ID
124
125 Returns: the initial high/low boundary of the arena
126 *---------------------------------------------------------------------------*/
127 void *OS_GetInitArenaHi(OSArenaId id);
128 void *OS_GetInitArenaLo(OSArenaId id);
129
130
131 //================================================================================
132 // SET ARENA INFO
133 //================================================================================
134 /*---------------------------------------------------------------------------*
135 Name: OS_SetArenaHi / OS_SetArenaLo
136
137 Description: Set the high/low boundary of the arena
138
139 Arguments: id : arena ID
140 newHi/newLo : New high/low boundary of the arena.
141
142 Returns: None.
143 *---------------------------------------------------------------------------*/
144 void OS_SetArenaHi(OSArenaId id, void *newHi);
145 void OS_SetArenaLo(OSArenaId id, void *newLo);
146
147
148 //================================================================================
149 // ALLOC
150 //================================================================================
151 /*---------------------------------------------------------------------------*
152 Name: OS_AllocFromArenaLo
153
154 Description: Allocates /size/ bytes from the low boundary of the arena.
155 Some additional memory will also be consumed from arena for
156 the alignment.
157
158 Arguments: id : arena ID
159 size : size of object to be allocated
160 align : alignment of object and new arena boundary to
161 be set (must be power of 2).
162
163 Returns: None.
164 *---------------------------------------------------------------------------*/
165 void *OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align);
166
167 /*---------------------------------------------------------------------------*
168 Name: OS_AllocFromArenaHi
169
170 Description: Allocates /size/ bytes from the high boundary of the arena.
171 Some additional memory will also be consumed from arena for
172 the alignment.
173
174 Arguments: id : arena ID
175 size : Size of object to be allocated
176 align : Alignment of object and new arena boundary to
177 be set (must be power of 2).
178
179 Returns: a pointer to the allocated space aligned with /align/ bytes
180 boundaries. The new high boundary of the arena is also
181 aligned with /align/ bytes boundaries.
182 *---------------------------------------------------------------------------*/
183 void *OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align);
184
185
186 //================================================================================
187 // convenient functions
188 //================================================================================
189 /*---------------------------------------------------------------------------*
190 Name: OS_[Set/Get/AllocFrom]MainArena[Hi/Lo]
191
192 Description: convenience functions for access main memory,
193 Main-Processor private
194 *---------------------------------------------------------------------------*/
195 //---- set Arena Hi/Lo address
OS_SetMainArenaHi(void * newHi)196 static inline void OS_SetMainArenaHi(void *newHi)
197 {
198 OS_SetArenaHi(OS_ARENA_MAIN, newHi);
199 }
OS_SetMainArenaLo(void * newLo)200 static inline void OS_SetMainArenaLo(void *newLo)
201 {
202 OS_SetArenaLo(OS_ARENA_MAIN, newLo);
203 }
204
205 //---- get Arena Hi/Lo address
OS_GetMainArenaHi(void)206 static inline void *OS_GetMainArenaHi(void)
207 {
208 return OS_GetArenaHi(OS_ARENA_MAIN);
209 }
OS_GetMainArenaLo(void)210 static inline void *OS_GetMainArenaLo(void)
211 {
212 return OS_GetArenaLo(OS_ARENA_MAIN);
213 }
214
215 //---- allocate memory from Arena
OS_AllocFromMainArenaLo(u32 size,u32 align)216 static inline void *OS_AllocFromMainArenaLo(u32 size, u32 align)
217 {
218 return OS_AllocFromArenaLo(OS_ARENA_MAIN, size, align);
219 }
OS_AllocFromMainArenaHi(u32 size,u32 align)220 static inline void *OS_AllocFromMainArenaHi(u32 size, u32 align)
221 {
222 return OS_AllocFromArenaHi(OS_ARENA_MAIN, size, align);
223 }
224
225 /*---------------------------------------------------------------------------*
226 Name: OS_[Set/Get/AllocFrom]SubPrivArena[Hi/Lo]
227
228 Description: convenience functions for access main memory,
229 Sub-Processor private
230 *---------------------------------------------------------------------------*/
231 //---- set Arena Hi/Lo address
OS_SetSubPrivArenaHi(void * newHi)232 static inline void OS_SetSubPrivArenaHi(void *newHi)
233 {
234 OS_SetArenaHi(OS_ARENA_MAIN_SUBPRIV, newHi);
235 }
OS_SetSubPrivArenaLo(void * newLo)236 static inline void OS_SetSubPrivArenaLo(void *newLo)
237 {
238 OS_SetArenaLo(OS_ARENA_MAIN_SUBPRIV, newLo);
239 }
240
241 //---- get Arena Hi/Lo address
OS_GetSubPrivArenaHi(void)242 static inline void *OS_GetSubPrivArenaHi(void)
243 {
244 return OS_GetArenaHi(OS_ARENA_MAIN_SUBPRIV);
245 }
OS_GetSubPrivArenaLo(void)246 static inline void *OS_GetSubPrivArenaLo(void)
247 {
248 return OS_GetArenaLo(OS_ARENA_MAIN_SUBPRIV);
249 }
250
251 //---- allocate memory from Arena
OS_AllocFromSubPrivArenaLo(u32 size,u32 align)252 static inline void *OS_AllocFromSubPrivArenaLo(u32 size, u32 align)
253 {
254 return OS_AllocFromArenaLo(OS_ARENA_MAIN_SUBPRIV, size, align);
255 }
OS_AllocFromSubPrivArenaHi(u32 size,u32 align)256 static inline void *OS_AllocFromSubPrivArenaHi(u32 size, u32 align)
257 {
258 return OS_AllocFromArenaHi(OS_ARENA_MAIN_SUBPRIV, size, align);
259 }
260
261 /*---------------------------------------------------------------------------*
262 Name: OS_[Set/Get/AllocFrom]MainExArena[Hi/Lo]
263
264 Description: convenience functions for extended main memory
265 *---------------------------------------------------------------------------*/
266 //---- set Arena Hi/Lo address
OS_SetMainExArenaHi(void * newHi)267 static inline void OS_SetMainExArenaHi(void *newHi)
268 {
269 OS_SetArenaHi(OS_ARENA_MAINEX, newHi);
270 }
OS_SetMainExArenaLo(void * newLo)271 static inline void OS_SetMainExArenaLo(void *newLo)
272 {
273 OS_SetArenaLo(OS_ARENA_MAINEX, newLo);
274 }
275
276 //---- get Arena Hi/Lo address
OS_GetMainExArenaHi(void)277 static inline void *OS_GetMainExArenaHi(void)
278 {
279 return OS_GetArenaHi(OS_ARENA_MAINEX);
280 }
OS_GetMainExArenaLo(void)281 static inline void *OS_GetMainExArenaLo(void)
282 {
283 return OS_GetArenaLo(OS_ARENA_MAINEX);
284 }
285
286 //---- allocate memory from Arena
OS_AllocFromMainExArenaLo(u32 size,u32 align)287 static inline void *OS_AllocFromMainExArenaLo(u32 size, u32 align)
288 {
289 return OS_AllocFromArenaLo(OS_ARENA_MAINEX, size, align);
290 }
OS_AllocFromMainExArenaHi(u32 size,u32 align)291 static inline void *OS_AllocFromMainExArenaHi(u32 size, u32 align)
292 {
293 return OS_AllocFromArenaHi(OS_ARENA_MAINEX, size, align);
294 }
295
296 /*---------------------------------------------------------------------------*
297 Name: OS_[Set/Get/AllocFrom]ITCMArena[Hi/Lo]
298
299 Description: convenience functions for ITCM
300 *---------------------------------------------------------------------------*/
301 //---- set Arena Hi/Lo address
OS_SetITCMArenaHi(void * newHi)302 static inline void OS_SetITCMArenaHi(void *newHi)
303 {
304 OS_SetArenaHi(OS_ARENA_ITCM, newHi);
305 }
OS_SetITCMArenaLo(void * newLo)306 static inline void OS_SetITCMArenaLo(void *newLo)
307 {
308 OS_SetArenaLo(OS_ARENA_ITCM, newLo);
309 }
310
311 //---- get Arena Hi/Lo address
OS_GetITCMArenaHi(void)312 static inline void *OS_GetITCMArenaHi(void)
313 {
314 return OS_GetArenaHi(OS_ARENA_ITCM);
315 }
OS_GetITCMArenaLo(void)316 static inline void *OS_GetITCMArenaLo(void)
317 {
318 return OS_GetArenaLo(OS_ARENA_ITCM);
319 }
320
321 //---- allocate memory from Arena
OS_AllocFromITCMArenaLo(u32 size,u32 align)322 static inline void *OS_AllocFromITCMArenaLo(u32 size, u32 align)
323 {
324 return OS_AllocFromArenaLo(OS_ARENA_ITCM, size, align);
325 }
OS_AllocFromITCMArenaHi(u32 size,u32 align)326 static inline void *OS_AllocFromITCMArenaHi(u32 size, u32 align)
327 {
328 return OS_AllocFromArenaHi(OS_ARENA_ITCM, size, align);
329 }
330
331 /*---------------------------------------------------------------------------*
332 Name: OS_[Set/Get/AllocFrom]DTCMArena[Hi/Lo]
333
334 Description: convenience functions for DTCM
335 *---------------------------------------------------------------------------*/
336 //---- set Arena Hi/Lo address
OS_SetDTCMArenaHi(void * newHi)337 static inline void OS_SetDTCMArenaHi(void *newHi)
338 {
339 OS_SetArenaHi(OS_ARENA_DTCM, newHi);
340 }
OS_SetDTCMArenaLo(void * newLo)341 static inline void OS_SetDTCMArenaLo(void *newLo)
342 {
343 OS_SetArenaLo(OS_ARENA_DTCM, newLo);
344 }
345
346 //---- get Arena Hi/Lo address
OS_GetDTCMArenaHi(void)347 static inline void *OS_GetDTCMArenaHi(void)
348 {
349 return OS_GetArenaHi(OS_ARENA_DTCM);
350 }
OS_GetDTCMArenaLo(void)351 static inline void *OS_GetDTCMArenaLo(void)
352 {
353 return OS_GetArenaLo(OS_ARENA_DTCM);
354 }
355
356 //---- allocate memory from Arena
OS_AllocFromDTCMArenaLo(u32 size,u32 align)357 static inline void *OS_AllocFromDTCMArenaLo(u32 size, u32 align)
358 {
359 return OS_AllocFromArenaLo(OS_ARENA_DTCM, size, align);
360 }
OS_AllocFromDTCMArenaHi(u32 size,u32 align)361 static inline void *OS_AllocFromDTCMArenaHi(u32 size, u32 align)
362 {
363 return OS_AllocFromArenaHi(OS_ARENA_DTCM, size, align);
364 }
365
366 /*---------------------------------------------------------------------------*
367 Name: OS_[Set/Get/AllocFrom]SharedArena[Hi/Lo]
368
369 Description: convenience functions for shared memory
370 *---------------------------------------------------------------------------*/
371 //---- set Arena Hi/Lo address
OS_SetSharedArenaHi(void * newHi)372 static inline void OS_SetSharedArenaHi(void *newHi)
373 {
374 OS_SetArenaHi(OS_ARENA_SHARED, newHi);
375 }
OS_SetSharedArenaLo(void * newLo)376 static inline void OS_SetSharedArenaLo(void *newLo)
377 {
378 OS_SetArenaLo(OS_ARENA_SHARED, newLo);
379 }
380
381 //---- get Arena Hi/Lo address
OS_GetSharedArenaHi(void)382 static inline void *OS_GetSharedArenaHi(void)
383 {
384 return OS_GetArenaHi(OS_ARENA_SHARED);
385 }
OS_GetSharedArenaLo(void)386 static inline void *OS_GetSharedArenaLo(void)
387 {
388 return OS_GetArenaLo(OS_ARENA_SHARED);
389 }
390
391 //---- allocate memory from Arena
OS_AllocFromSharedArenaLo(u32 size,u32 align)392 static inline void *OS_AllocFromSharedArenaLo(u32 size, u32 align)
393 {
394 return OS_AllocFromArenaLo(OS_ARENA_SHARED, size, align);
395 }
OS_AllocFromSharedArenaHi(u32 size,u32 align)396 static inline void *OS_AllocFromSharedArenaHi(u32 size, u32 align)
397 {
398 return OS_AllocFromArenaHi(OS_ARENA_SHARED, size, align);
399 }
400
401 /*---------------------------------------------------------------------------*
402 Name: OS_[Set/Get/AllocFrom]WramMainArena[Hi/Lo]
403
404 Description: convenience functions for common Work RAM,
405 Main-Processor private
406 *---------------------------------------------------------------------------*/
407 //---- set Arena Hi/Lo address
OS_SetWramMainArenaHi(void * newHi)408 static inline void OS_SetWramMainArenaHi(void *newHi)
409 {
410 OS_SetArenaHi(OS_ARENA_WRAM_MAIN, newHi);
411 }
OS_SetWramMainArenaLo(void * newLo)412 static inline void OS_SetWramMainArenaLo(void *newLo)
413 {
414 OS_SetArenaLo(OS_ARENA_WRAM_MAIN, newLo);
415 }
416
417 //---- get Arena Hi/Lo address
OS_GetWramMainArenaHi(void)418 static inline void *OS_GetWramMainArenaHi(void)
419 {
420 return OS_GetArenaHi(OS_ARENA_WRAM_MAIN);
421 }
OS_GetWramMainArenaLo(void)422 static inline void *OS_GetWramMainArenaLo(void)
423 {
424 return OS_GetArenaLo(OS_ARENA_WRAM_MAIN);
425 }
426
427 //---- allocate memory from Arena
OS_AllocFromWramMainArenaLo(u32 size,u32 align)428 static inline void *OS_AllocFromWramMainArenaLo(u32 size, u32 align)
429 {
430 return OS_AllocFromArenaLo(OS_ARENA_WRAM_MAIN, size, align);
431 }
OS_AllocFromWramMainArenaHi(u32 size,u32 align)432 static inline void *OS_AllocFromWramMainArenaHi(u32 size, u32 align)
433 {
434 return OS_AllocFromArenaHi(OS_ARENA_WRAM_MAIN, size, align);
435 }
436
437 /*---------------------------------------------------------------------------*
438 Name: OS_[Set/Get/AllocFrom]WramSubArena[Hi/Lo]
439
440 Description: convenience functions for common Work RAM,
441 Sub-Processor private
442 *---------------------------------------------------------------------------*/
443 //---- set Arena Hi/Lo address
OS_SetWramSubArenaHi(void * newHi)444 static inline void OS_SetWramSubArenaHi(void *newHi)
445 {
446 OS_SetArenaHi(OS_ARENA_WRAM_SUB, newHi);
447 }
OS_SetWramSubArenaLo(void * newLo)448 static inline void OS_SetWramSubArenaLo(void *newLo)
449 {
450 OS_SetArenaLo(OS_ARENA_WRAM_SUB, newLo);
451 }
452
453 //---- get Arena Hi/Lo address
OS_GetWramSubArenaHi(void)454 static inline void *OS_GetWramSubArenaHi(void)
455 {
456 return OS_GetArenaHi(OS_ARENA_WRAM_SUB);
457 }
OS_GetWramSubArenaLo(void)458 static inline void *OS_GetWramSubArenaLo(void)
459 {
460 return OS_GetArenaLo(OS_ARENA_WRAM_SUB);
461 }
462
463 //---- allocate memory from Arena
OS_AllocFromWramSubArenaLo(u32 size,u32 align)464 static inline void *OS_AllocFromWramSubArenaLo(u32 size, u32 align)
465 {
466 return OS_AllocFromArenaLo(OS_ARENA_WRAM_SUB, size, align);
467 }
OS_AllocFromWramSubArenaHi(u32 size,u32 align)468 static inline void *OS_AllocFromWramSubArenaHi(u32 size, u32 align)
469 {
470 return OS_AllocFromArenaHi(OS_ARENA_WRAM_SUB, size, align);
471 }
472
473 /*---------------------------------------------------------------------------*
474 Name: OS_[Set/Get/AllocFrom]WramSubPrivArena[Hi/Lo]
475
476 Description: convenience functions for Sub-Processor private Work RAM
477 *---------------------------------------------------------------------------*/
478 //---- set Arena Hi/Lo address
OS_SetWramSubPrivArenaHi(void * newHi)479 static inline void OS_SetWramSubPrivArenaHi(void *newHi)
480 {
481 OS_SetArenaHi(OS_ARENA_WRAM_SUBPRIV, newHi);
482 }
OS_SetWramSubPrivArenaLo(void * newLo)483 static inline void OS_SetWramSubPrivArenaLo(void *newLo)
484 {
485 OS_SetArenaLo(OS_ARENA_WRAM_SUBPRIV, newLo);
486 }
487
488 //---- get Arena Hi/Lo address
OS_GetWramSubPrivArenaHi(void)489 static inline void *OS_GetWramSubPrivArenaHi(void)
490 {
491 return OS_GetArenaHi(OS_ARENA_WRAM_SUBPRIV);
492 }
OS_GetWramSubPrivArenaLo(void)493 static inline void *OS_GetWramSubPrivArenaLo(void)
494 {
495 return OS_GetArenaLo(OS_ARENA_WRAM_SUBPRIV);
496 }
497
498 //---- allocate memory from Arena
OS_AllocFromWramSubPrivArenaLo(u32 size,u32 align)499 static inline void *OS_AllocFromWramSubPrivArenaLo(u32 size, u32 align)
500 {
501 return OS_AllocFromArenaLo(OS_ARENA_WRAM_SUBPRIV, size, align);
502 }
OS_AllocFromWramSubPrivArenaHi(u32 size,u32 align)503 static inline void *OS_AllocFromWramSubPrivArenaHi(u32 size, u32 align)
504 {
505 return OS_AllocFromArenaHi(OS_ARENA_WRAM_SUBPRIV, size, align);
506 }
507
508
509 /*---------------------------------------------------------------------------*
510 Name: OS_InitArenaHi
511
512 Description: set ArenaHi as initial setting
513 *---------------------------------------------------------------------------*/
OS_InitArenaHi(OSArenaId id)514 static inline void OS_InitArenaHi(OSArenaId id)
515 {
516 OS_SetArenaHi((id), OS_GetInitArenaHi((OSArenaId)id));
517 }
518
519 /*---------------------------------------------------------------------------*
520 Name: OS_InitArenaLo
521
522 Description: set ArenaLo as initial setting
523 *---------------------------------------------------------------------------*/
OS_InitArenaLo(OSArenaId id)524 static inline void OS_InitArenaLo(OSArenaId id)
525 {
526 OS_SetArenaLo((id), OS_GetInitArenaLo(id));
527 }
528
529 /*---------------------------------------------------------------------------*
530 Name: OS_InitArenaHiAndLo
531
532 Description: set ArenaHi/Lo as initial setting
533 *---------------------------------------------------------------------------*/
OS_InitArenaHiAndLo(OSArenaId id)534 static inline void OS_InitArenaHiAndLo(OSArenaId id)
535 {
536 OS_InitArenaHi(id);
537 OS_InitArenaLo(id);
538 }
539
540 #ifdef SDK_ARM9
541 /*---------------------------------------------------------------------------*
542 Name: OS_EnableMainExArena
543
544 Description: Set extended main memory arena enable.
545 This function should be called before OS_Init().
546
547 Arguments: None
548
549 Returns: None
550 *---------------------------------------------------------------------------*/
551 void OS_EnableMainExArena(void);
552
553 /*---------------------------------------------------------------------------*
554 Name: OS_DisableMainExArena
555
556 Description: Set extended main memory arena disable.
557 This function should be called before OS_Init().
558
559 Arguments: None
560
561 Returns: None
562 *---------------------------------------------------------------------------*/
563 void OS_DisableMainExArena(void);
564 #endif
565
566 //================================================================================
567 // DUMP ARENA INFO
568 //================================================================================
569 /*---------------------------------------------------------------------------*
570 Name: OS_DumpArenaInfo
571
572 Description: display arena info
573
574 Arguments: id : arena id
575 isInfoLine : whether display explanation line or not.
576 TRUE ... display
577 FALSE ... not display.
578
579 Returns: None
580 *---------------------------------------------------------------------------*/
581 #ifndef SDK_FINALROM
582 void OS_DumpArenaInfo( OSArenaId id, BOOL isInfoLine );
583 #else
584 #define OS_DumpArenaInfo(id,isInfoLine) ((void)0)
585 #endif
586
587 /*---------------------------------------------------------------------------*
588 Name: OS_DumpAllArenaInfo
589
590 Description: display each arena info
591
592 Arguments: None
593
594 Returns: None
595 *---------------------------------------------------------------------------*/
596 #ifndef SDK_FINALROM
597 void OS_DumpAllArenaInfo(void);
598 #else
599 #define OS_DumpAllArenaInfo() ((void)0)
600 #endif
601
602 /*---------------------------------------------------------------------------*
603 Name: OS_GetArenaResource
604
605 Description: store resources of arena to specified pointer
606
607 Arguments: resource pointer to store arena resources
608
609 Returns: TRUE ... success (always return this now)
610 FALSE ... fail
611 *---------------------------------------------------------------------------*/
612 BOOL OS_GetArenaResource(OSArenaResource *resource);
613
614 //--------------------------------------------------------------------------------
615
616 #ifdef __cplusplus
617 } /* extern "C" */
618 #endif
619
620 /* NITRO_OS_ARENA_H_ */
621 #endif
622