1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     types.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: 13736 $
14  *---------------------------------------------------------------------------*/
15 
16 // 文字コードはSJISにしている。(平津)
17 #ifdef _WIN32
18 
19 #ifndef NN_TYPES_H_
20 #define NN_TYPES_H_
21 
22 
23 // TORIAEZU: 過渡期暫定
24 #ifdef  SDK_ASM
25     #define NN_SWITCH_INCLUDE_FROM_NON_C
26 #endif
27 
28 
29 #ifdef  NN_SWITCH_INCLUDE_FROM_NON_C
30 #else  // ifdef NN_SWITCH_INCLUDE_FROM_NON_C
31 
32 // VS2008だと、inttypes.hが存在しない、と叱られるので、コメントアウトした。
33 //	#if !defined(_MSC_VER) || (_MSC_VER >= 1500)
34 //	    #include <inttypes.h>
35 //	#endif
36 
37     #include <stddef.h>
38     #include <stdarg.h>
39 
40     #ifndef __cplusplus
41         #include <stdbool.h>
42     #endif
43 
44     typedef unsigned char           u8;
45     typedef unsigned short int      u16;
46     typedef unsigned int            u32;
47     typedef unsigned long long int  u64;
48 
49     typedef signed char             s8;
50     typedef signed short int        s16;
51     typedef signed int              s32;
52     typedef signed long long int    s64;
53 
54     typedef intptr_t                sptr;
55     typedef uintptr_t               uptr;
56 
57     typedef char                    char8;
58     typedef wchar_t                 char16;
59 
60     typedef volatile u8             vu8;
61     typedef volatile u16            vu16;
62     typedef volatile u32            vu32;
63     typedef volatile u64            vu64;
64 
65     typedef volatile s8             vs8;
66     typedef volatile s16            vs16;
67     typedef volatile s32            vs32;
68     typedef volatile s64            vs64;
69 
70     typedef float                   f32;
71     typedef double                  f64;
72 
73     typedef volatile f32            vf32;
74     typedef volatile f64            vf64;
75 
76     typedef unsigned char           bit8;
77     typedef unsigned short          bit16;
78     typedef unsigned int            bit32;
79     typedef unsigned long long int  bit64;
80 
81     /*
82         io_register_list_XX.hで使用するマクロと型
83      */
84 
85     typedef u8      REGType8;
86     typedef u16     REGType16;
87     typedef u32     REGType32;
88     typedef u64     REGType64;
89 
90     typedef vu8     REGType8v;
91     typedef vu16    REGType16v;
92     typedef vu32    REGType32v;
93     typedef vu64    REGType64v;
94 
95     #ifdef __cplusplus
96     namespace nn
97     {
98         typedef bit64 ProgramID;
99     }
100     #endif
101 
102     #if defined(SDK_128M) || defined(SDK_64M) || defined(SDK_WIN32)
103         typedef int     BOOL;
104         #define TRUE    1
105         #define FALSE   0
106 
107         typedef struct
108         {
109             u32 w[3];
110         }
111         u96;
112 
113         typedef struct
114         {
115             u32 w[4];
116         }
117         u128;
118 
119         typedef volatile u96    vu96;
120         typedef volatile u128   vu128;
121 
122         typedef u96     REGType96;
123         typedef u128    REGType128;
124         typedef vu96    REGType96v;
125         typedef vu128   REGType128v;
126     #endif
127 
128 #endif // ifdef NN_SWITCH_INCLUDE_FROM_NON_C else
129 
130 
131 /* NN_TYPES_H_ */
132 #endif
133 
134 
135 #endif // _WIN32
136