/*---------------------------------------------------------------------------* Project: Horizon File: types.h Copyright (C) Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 51157 $ *---------------------------------------------------------------------------*/ /*! @file :include nn/types.h */ #ifndef NN_TYPES_H_ #define NN_TYPES_H_ // TORIAEZU: Transition period provision. #ifdef SDK_ASM #define NN_SWITCH_INCLUDE_FROM_NON_C #endif #ifdef NN_SWITCH_INCLUDE_FROM_NON_C #else // ifdef NN_SWITCH_INCLUDE_FROM_NON_C #if !defined(_MSC_VER) || (1500 < _MSC_VER && _MSC_VER < 1700 ) #include #endif #include #include #ifndef __cplusplus #include #endif #include //! @addtogroup nn_types Basic type definitions. //! @brief These are the definitions of basic types used by the SDK. //! @{ #if 0 //! 8-bit unsigned integer type. typedef unsigned char u8; //! 16-bit unsigned integer type. typedef unsigned short int u16; //! 32-bit unsigned integer type. typedef unsigned int u32; //! 64-bit unsigned integer type. typedef unsigned long long int u64; //! 8-bit signed integer type. typedef signed char s8; //! 16-bit signed integer type. typedef signed short int s16; //! 32-bit signed integer type. typedef signed int s32; //! 64-bit signed integer type. typedef signed long long int s64; #endif //! Signed address integer type. typedef intptr_t sptr; //! Unsigned address integer type. typedef uintptr_t uptr; //! 8-bit character type. typedef char char8; //! 16-bit character type. #ifndef __CHAR16_DEFINED typedef wchar_t char16; #define __CHAR16_DEFINED #endif #if 0 typedef volatile u8 vu8; typedef volatile u16 vu16; typedef volatile u32 vu32; typedef volatile u64 vu64; typedef volatile s8 vs8; typedef volatile s16 vs16; typedef volatile s32 vs32; typedef volatile s64 vs64; #endif #ifdef NN_SWITCH_INCLUDE_FROM_NON_C //! Single-precision floating-point value type. typedef float f32; //! Double-precision floating-point value type. typedef double f64; typedef volatile f32 vf32; typedef volatile f64 vf64; #endif // NN_SWITCH_INCLUDE_FROM_NON_C //! 8-bit data type. typedef unsigned char bit8; //! 16-bit data type. typedef unsigned short bit16; //! 32-bit data type. typedef unsigned int bit32; //! 64-bit data type. typedef unsigned long long int bit64; //! @} /* Macros and types used with io_register_list_XX.h */ typedef u8 REGType8; typedef u16 REGType16; typedef u32 REGType32; typedef u64 REGType64; typedef vu8 REGType8v; typedef vu16 REGType16v; typedef vu32 REGType32v; typedef vu64 REGType64v; #ifdef __cplusplus namespace nn { typedef bit64 ProgramId; typedef bit64 TitleId; struct ProductCode { char code[16]; }; struct ProductInfo { char productCode[16]; bit16 companyCode; u16 remasterVersion; }; } #endif #endif // ifdef NN_SWITCH_INCLUDE_FROM_NON_C else #ifndef IOP_BUILD #include #undef CTR #endif /* NN_TYPES_H_ */ #endif