1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: types.h 4 5 Copyright (C)2009-2012 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: 46347 $ 14 *---------------------------------------------------------------------------*/ 15 16 17 #ifdef _WIN32 18 19 #ifndef NN_TYPES_H_ 20 #define NN_TYPES_H_ 21 22 23 // TORIAEZU: Provisional for transition period 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 // inttypes.h does not exist if VS2008, so commented it out. 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 Macros and types used with io_register_list_XX.h files 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