/****************************************************************************
 *
 * CRI Middleware SDK
 *
 * Copyright (c) 1998-2005 CRI-MW
 *
 * Library  : CRI Middleware Library
 * Module   : CRI Common Header for PS3 PPU
 * File     : cri_xpts_ps3ppu.h
 * Date     : 2005-08-09
 * Version  : 1.01
 *
 ****************************************************************************/
#ifndef CRI_XPTS_PS3PPU_H
#define CRI_XPTS_PS3PPU_H

#include <sdk_version.h>

#ifndef SEGA_XPT_H

/*****************************************************************************
 * 定数マクロ
 *****************************************************************************/

/* NULL ポインタ型 */
#ifndef NULL
#ifdef __cplusplus
#define NULL	(0)
#else
#define NULL	((void *)0)
#endif
#endif

/* 論理定数１（偽、真） */
#ifndef FALSE
#define FALSE	(0)
#endif
#ifndef TRUE
#define TRUE	(1)
#endif

/* 論理定数２（スイッチ） */
#ifndef OFF
#define OFF		(0)
#endif
#ifndef ON
#define ON		(1)
#endif

/* 結果判定の定数（成功、失敗） */
#ifndef OK
#define OK		(0)			/* 成功 */
#endif
#ifndef NG
#define NG		(-1)		/* 失敗 */
#endif

/*****************************************************************************
 * 基本データ型宣言
 *****************************************************************************/

#ifndef _TYPEDEF_Uint8
#define _TYPEDEF_Uint8
typedef unsigned char			Uint8;		/* 符号なし１バイト整数 */
#endif

#ifndef _TYPEDEF_Sint8
#define _TYPEDEF_Sint8
typedef signed char				Sint8;		/* 符号つき１バイト整数 */
#endif

#ifndef _TYPEDEF_Uint16
#define _TYPEDEF_Uint16
typedef unsigned short			Uint16;		/* 符号なし２バイト整数 */
#endif

#ifndef _TYPEDEF_Sint16
#define _TYPEDEF_Sint16
typedef signed short			Sint16;		/* 符号つき２バイト整数 */
#endif

#ifndef _TYPEDEF_Uint32
#define _TYPEDEF_Uint32
typedef unsigned int			Uint32;		/* 符号なし４バイト整数 */
#endif

#ifndef _TYPEDEF_Sint32
#define _TYPEDEF_Sint32
typedef signed int				Sint32;		/* 符号つき４バイト整数 */
#endif


#if (CELL_SDK_VERSION >= 0x080000)

#ifndef _TYPEDEF_Uint64
#define _TYPEDEF_Uint64
typedef unsigned long long		Uint64;		/* 符号なし８バイト整数 */
#endif

#ifndef _TYPEDEF_Sint64
#define _TYPEDEF_Sint64
typedef signed long long		Sint64;		/* 符号つき８バイト整数 */
#endif

#else

#ifndef _TYPEDEF_Uint64
#define _TYPEDEF_Uint64
typedef unsigned long			Uint64;		/* 符号なし８バイト整数 */
#endif

#ifndef _TYPEDEF_Sint64
#define _TYPEDEF_Sint64
typedef signed long				Sint64;		/* 符号つき８バイト整数 */
#endif

#endif


#ifndef _TYPEDEF_Uint128
#define _TYPEDEF_Uint128
typedef struct {							/* 符号なし16バイト整数 */
	Uint64			h;						/* 上位64ビット */
	Uint64			l;						/* 下位64ビット */
} Uint128;
#endif

#ifndef _TYPEDEF_Sint128
#define _TYPEDEF_Sint128
typedef struct {							/* 符号つき16バイト整数 */
	Sint64	h;								/* 上位64ビット */
	Uint64	l;								/* 下位64ビット */
} Sint128;
#endif

#ifndef _TYPEDEF_Float16
#define _TYPEDEF_Float16
typedef signed short			Float16;	/* ２バイト実数 */
#endif

#ifndef _TYPEDEF_Float32
#define _TYPEDEF_Float32
typedef float					Float32;	/* ４バイト実数 */
#endif

#ifndef _TYPEDEF_Float64
#define _TYPEDEF_Float64
typedef double					Float64;	/* ８バイト実数 */
#endif

#ifndef _TYPEDEF_Fixed32
#define _TYPEDEF_Fixed32
typedef signed int				Fixed32;	/* 固定小数点32ビット */
#endif

#ifndef _TYPEDEF_Bool
#define _TYPEDEF_Bool
typedef Sint32					Bool;		/* 論理型（論理定数を値にとる） */
#endif

#ifndef _TYPEDEF_Char8
#define _TYPEDEF_Char8
typedef char					Char8;		/* 文字型 */
#endif

/*****************************************************************************
 * ポインタ変数
 *****************************************************************************/
#if (CELL_SDK_VERSION >= 0x080000)

#ifndef _TYPEDEF_SintPtr
#define _TYPEDEF_SintPtr
typedef Sint32					SintPtr;
#endif

#ifndef _TYPEDEF_UintPtr
#define _TYPEDEF_UintPtr
typedef Uint32					UintPtr;
#endif

#else

#ifndef _TYPEDEF_SintPtr
#define _TYPEDEF_SintPtr
typedef Sint64					SintPtr;
#endif

#ifndef _TYPEDEF_UintPtr
#define _TYPEDEF_UintPtr
typedef Uint64					UintPtr;
#endif

#endif
/*****************************************************************************
 * ベクトル変数
 *****************************************************************************/
#ifndef _TYPEDEF_Svec8
#define _TYPEDEF_Svec8
typedef vector signed char			Svec8;
#endif

#ifndef _TYPEDEF_Uvec8
#define _TYPEDEF_Uvec8
typedef vector unsigned char		Uvec8;
#endif

#ifndef _TYPEDEF_Svec16
#define _TYPEDEF_Svec16
typedef vector signed short			Svec16;
#endif

#ifndef _TYPEDEF_Uvec16
#define _TYPEDEF_Uvec16
typedef vector unsigned short		Uvec16;
#endif

#ifndef _TYPEDEF_Svec32
#define _TYPEDEF_Svec32
typedef vector signed int			Svec32;
#endif

#ifndef _TYPEDEF_Uvec32
#define _TYPEDEF_Uvec32
typedef vector unsigned int			Uvec32;
#endif

#ifndef _TYPEDEF_Fvec32
#define _TYPEDEF_Fvec32
typedef vector float				Fvec32;
#endif

/*****************************************************************************
 * 呼び出し規約
 *****************************************************************************/

#ifndef CRIAPI
#define CRIAPI
#endif	/* endif CRIAPI */


#endif
#endif	/* CRI_XPTS_PS3PPU_H */

/* end of file */
