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