1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     os_MemoryMap.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  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   $Rev: 32209 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_OS_CTR_MPCORE_OS_MEMORYMAPPROCESS_H_
17 #define NN_OS_CTR_MPCORE_OS_MEMORYMAPPROCESS_H_
18 
19 
20 #define NN_OS_ADDR_SIZE(name)   (name ## _END - name ## _BEGIN)
21 
22 //--------------------------------------------------
23 // メモリ空間全体
24 
25 #define NN_OS_ADDR_SPACE_BEGIN  0x00000000
26 #define NN_OS_ADDR_SPACE_END    0x20000000
27 
28 
29 //--------------------------------------------------
30 // メモリ空間詳細
31 
32 #define NN_OS_ADDR_NULL_TRAP_BEGIN  NN_OS_ADDR_SPACE_BEGIN
33 #define NN_OS_ADDR_NULL_TRAP_END    NN_OS_ADDR_CODE_BEGIN
34 #define NN_OS_ADDR_NULL_TRAP_SIZE   NN_OS_ADDR_SIZE(NN_OS_ADDR_NULL_TRAP)
35 
36 #define NN_OS_ADDR_CODE_BEGIN       0x00100000
37 #define NN_OS_ADDR_CODE_END         NN_OS_ADDR_LAND_BEGIN
38 #define NN_OS_ADDR_CODE_SIZE        NN_OS_ADDR_SIZE(NN_OS_ADDR_CODE)
39 
40 #define NN_OS_ADDR_LAND_BEGIN       0x04000000
41 #define NN_OS_ADDR_LAND_END         NN_OS_ADDR_HEAP_BEGIN
42 #define NN_OS_ADDR_LAND_SIZE        NN_OS_ADDR_SIZE(NN_OS_ADDR_LAND)
43 
44 #define NN_OS_ADDR_HEAP_BEGIN       0x08000000
45 #define NN_OS_ADDR_HEAP_END         NN_OS_ADDR_STACK_BEGIN
46 #define NN_OS_ADDR_HEAP_SIZE        NN_OS_ADDR_SIZE(NN_OS_ADDR_HEAP)
47 
48 #define NN_OS_ADDR_STACK_BEGIN      0x0E000000
49 #define NN_OS_ADDR_STACK_END        NN_OS_ADDR_SHARED_BEGIN
50 #define NN_OS_ADDR_STACK_SIZE       NN_OS_ADDR_SIZE(NN_OS_ADDR_STACK)
51 
52 #define NN_OS_ADDR_SHARED_BEGIN     0x10000000
53 #define NN_OS_ADDR_SHARED_END       NN_OS_ADDR_CONTINUOUS_BEGIN
54 #define NN_OS_ADDR_SHARED_SIZE      NN_OS_ADDR_SIZE(NN_OS_ADDR_SHARED)
55 
56 #define NN_OS_ADDR_CONTINUOUS_BEGIN 0x14000000
57 #define NN_OS_ADDR_CONTINUOUS_END   NN_OS_ADDR_RESERVED_BEGIN
58 #define NN_OS_ADDR_CONTINUOUS_SIZE  NN_OS_ADDR_SIZE(NN_OS_ADDR_CONTINUOUS)
59 
60 #define NN_OS_ADDR_RESERVED_BEGIN   0x1C000000
61 #define NN_OS_ADDR_RESERVED_END     NN_OS_ADDR_SPACE_END
62 #define NN_OS_ADDR_RESERVED_SIZE    NN_OS_ADDR_SIZE(NN_OS_ADDR_RESERVED)
63 
64 
65 //--------------------------------------------------
66 // 予約領域詳細
67 
68 #define NN_OS_ADDR_USER_BEGIN               NN_OS_ADDR_HEAP_BEGIN
69 #define NN_OS_ADDR_USER_END                 NN_OS_ADDR_SHARED_END
70 
71 #define NN_OS_ADDR_VRAM_BEGIN               0x1F000000
72 #define NN_OS_ADDR_VRAM_END                 (NN_OS_ADDR_VRAM_BEGIN + NN_OS_ADDR_VRAM_SIZE)
73 #if    defined(NN_HARDWARE_CTR_TEG2)
74     #define NN_OS_ADDR_VRAM_SIZE            0x00400000
75 #else
76     #define NN_OS_ADDR_VRAM_SIZE            0x00600000
77 #endif
78 
79 #define NN_OS_ADDR_DSP_WRAM_BEGIN           0x1FF00000
80 #define NN_OS_ADDR_DSP_WRAM_END             (NN_OS_ADDR_DSP_WRAM_BEGIN + NN_OS_ADDR_DSP_WRAM_SIZE)
81 #define NN_OS_ADDR_DSP_WRAM_SIZE            0x00080000
82 
83 #define NN_OS_ADDR_READONLY_SHARED_PAGE     0x1FF80000
84 #define NN_OS_ADDR_WRITABLE_SHARED_PAGE     0x1FF81000
85 
86 #define NN_OS_ADDR_THREAD_LOCAL_REGION_BEGIN    0x1FF82000
87 #define NN_OS_ADDR_THREAD_LOCAL_REGION_END      NN_OS_ADDR_RESERVED_END
88 #define NN_OS_ADDR_THREAD_LOCAL_REGION_SIZE     NN_OS_ADDR_SIZE(NN_OS_ADDR_THREAD_LOCAL_REGION)
89 
90 
91 #endif /* NN_OS_CTR_MPCORE_OS_MEMORYMAPPROCESS_H_ */
92