X-Git-Url: http://git.maemo.org/git/?p=blok;a=blobdiff_plain;f=Box2D%2FSource%2FCommon%2Fjtypes.h;fp=Box2D%2FSource%2FCommon%2Fjtypes.h;h=9f224547ac6f3111af7b8651e3c4a31a9758ce0f;hp=0000000000000000000000000000000000000000;hb=f4dacbe0a45b6d24b5c0c0f30634988c71bc321d;hpb=1ef80d0d5bf4d1fc254fb1d05ad4e448645d5895 diff --git a/Box2D/Source/Common/jtypes.h b/Box2D/Source/Common/jtypes.h new file mode 100644 index 0000000..9f22454 --- /dev/null +++ b/Box2D/Source/Common/jtypes.h @@ -0,0 +1,139 @@ +/*--------------------------------------------------------------------------------- + $Id: jtypes.h,v 1.17 2007/07/18 05:20:45 wntrmute Exp $ + + jtypes.h -- Common types (and a few useful macros) + + Copyright (C) 2005 + Michael Noland (joat) + Jason Rogers (dovoto) + Dave Murphy (WinterMute) + Chris Double (doublec) + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any + damages arising from the use of this software. + + Permission is granted to anyone to use this software for any + purpose, including commercial applications, and to alter it and + redistribute it freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you use + this software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and + must not be misrepresented as being the original software. + 3. This notice may not be removed or altered from any source + distribution. + +---------------------------------------------------------------------------------*/ +#ifndef NDS_JTYPES_INCLUDE +#define NDS_JTYPES_INCLUDE +//--------------------------------------------------------------------------------- + + +#define PACKED __attribute__ ((packed)) +#define packed_struct struct PACKED + +//--------------------------------------------------------------------------------- +// libgba compatible section macros +//--------------------------------------------------------------------------------- +#define ITCM_CODE __attribute__((section(".itcm"), long_call)) + +#define DTCM_DATA __attribute__((section(".dtcm"))) +#define DTCM_BSS __attribute__((section(".sbss"))) +#define ALIGN(m) __attribute__((aligned (m))) + +#define PACKED __attribute__ ((packed)) +#define packed_struct struct PACKED + +//--------------------------------------------------------------------------------- +// These are linked to the bin2o macro in the Makefile +//--------------------------------------------------------------------------------- +#define GETRAW(name) (name) +#define GETRAWSIZE(name) ((int)name##_size) +#define GETRAWEND(name) ((int)name##_end) + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +#define BIT(n) (1 << (n)) + +// define libnds types in terms of stdint +#include + +typedef uint8_t uint8; +typedef uint16_t uint16; +typedef uint32_t uint32; +typedef uint64_t uint64; + +typedef int8_t int8; +typedef int16_t int16; +typedef int32_t int32; +typedef int64_t int64; + +//typedef float float32; +typedef double float64; + +typedef volatile uint8_t vuint8; +typedef volatile uint16_t vuint16; +typedef volatile uint32_t vuint32; +typedef volatile uint64_t vuint64; + +typedef volatile int8_t vint8; +typedef volatile int16_t vint16; +typedef volatile int32_t vint32; +typedef volatile int64_t vint64; + +typedef volatile float vfloat32; +typedef volatile float64 vfloat64; + +typedef uint8_t byte; + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +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; + +typedef struct touchPosition { + int16 x; + int16 y; + int16 px; + int16 py; + int16 z1; + int16 z2; +} touchPosition; + + +#ifndef __cplusplus +/** C++ compatible bool for C + +*/ +typedef enum { false, true } bool; +#endif + +// Handy function pointer typedefs +typedef void ( * IntFn)(void); +typedef void (* VoidFunctionPointer)(void); +typedef void (* fp)(void); + +//--------------------------------------------------------------------------------- +#endif +//---------------------------------------------------------------------------------