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