Initial commit.
This commit is contained in:
Executable
+149
@@ -0,0 +1,149 @@
|
||||
#ifndef MOC_DATATYPE_H_
|
||||
#define MOC_DATATYPE_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
/**
|
||||
* \addtogroup p2p_datatype
|
||||
*
|
||||
* Datatypes supported by MOC.
|
||||
*
|
||||
* There are the normal datatypes defined by C (char, short, int, ...) and special
|
||||
* vector-datatypes used by the Cell Broadband Engine. For more information see
|
||||
* "C/C++ Language Extensions for Cell Broadband Engine Architecture - Version 2.5"
|
||||
* chapter 1.1.
|
||||
**/
|
||||
//@{
|
||||
/**
|
||||
* @name PPU & SPU
|
||||
**/
|
||||
//@{
|
||||
|
||||
/**
|
||||
* Typedef defining MOC_Datatype.
|
||||
*
|
||||
* One byte is used to encode the Data-Type. The first four msb hold the
|
||||
* size in byte / 2 ( if ((datatype & 0xF0)>>4) == 0 then size = 1 else
|
||||
* size = ((datatype & 0xF0)>>4)*2 ) and the four lsb hold an id. The
|
||||
* combination of id and size is used to uniquely identify
|
||||
* a datatype (or rather a group of datatypes belonging together).
|
||||
**/
|
||||
typedef uint8_t MOC_Datatype;
|
||||
|
||||
/**
|
||||
* MOC_Byte is a special datatype. It can match any datatype.
|
||||
* It has a size of 1 byte.
|
||||
**/
|
||||
#define MOC_BYTE ((MOC_Datatype)0+0)
|
||||
|
||||
/**
|
||||
* C-Datatype char.
|
||||
* It has a size of 1 byte.
|
||||
**/
|
||||
#define MOC_CHAR ((MOC_Datatype)0+1)
|
||||
|
||||
/**
|
||||
* C-Datatype unsigned char.
|
||||
* It has a size of 1 byte.
|
||||
**/
|
||||
#define MOC_UNSIGNED_CHAR ((MOC_Datatype)0+2)
|
||||
|
||||
/**
|
||||
* C-Datatype short.
|
||||
* It has a size of 2 byte.
|
||||
**/
|
||||
#define MOC_SHORT ((MOC_Datatype)16+0)
|
||||
|
||||
/**
|
||||
* C-Datatype unsigned short.
|
||||
* It has a size of 2 byte.
|
||||
**/
|
||||
#define MOC_UNSIGNED_SHORT ((MOC_Datatype)16+1)
|
||||
|
||||
/**
|
||||
* C-Datatype int.
|
||||
* It has a size of 4 byte.
|
||||
**/
|
||||
#define MOC_INT ((MOC_Datatype)32+0)
|
||||
|
||||
/**
|
||||
* C-Datatype unsigned int.
|
||||
* It has a size of 4 byte.
|
||||
**/
|
||||
#define MOC_UNSIGNED ((MOC_Datatype)32+1)
|
||||
|
||||
/**
|
||||
* C-Datatype long long.
|
||||
* It has a size of 8 byte.
|
||||
**/
|
||||
#define MOC_LONG_LONG ((MOC_Datatype)64+0)
|
||||
|
||||
/**
|
||||
* C-Datatype unsigned long long.
|
||||
* It has a size of 8 byte.
|
||||
**/
|
||||
#define MOC_UNSIGNED_LONG_LONG ((MOC_Datatype)64+1)
|
||||
|
||||
/**
|
||||
* C-Datatype float.
|
||||
* It has a size of 4 byte.
|
||||
**/
|
||||
#define MOC_FLOAT ((MOC_Datatype)32+2)
|
||||
|
||||
/**
|
||||
* C-Datatype double.
|
||||
* It has a size of 8 byte.
|
||||
**/
|
||||
#define MOC_DOUBLE ((MOC_Datatype)64+5)
|
||||
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector unsigned char (vec_uchar16).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_UCHAR16 ((MOC_Datatype)128+0)
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector unsigned short (vec_ushort8).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_USHORT8 ((MOC_Datatype)128+1)
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector unsigned int (vec_uint4).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_UINT4 ((MOC_Datatype)128+2)
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector signed char (vec_char16).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_CHAR16 ((MOC_Datatype)128+4)
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector signed short (vec_short8).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_SHORT8 ((MOC_Datatype)128+3)
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector signed int (vec_int4).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_INT4 ((MOC_Datatype)128+5)
|
||||
|
||||
|
||||
/**
|
||||
* Cell-specific Datatype vector float (vec_float4).
|
||||
* It has a size of 16 byte.
|
||||
**/
|
||||
#define MOC_VEC_FLOAT4 ((MOC_Datatype)128+6)
|
||||
|
||||
|
||||
|
||||
|
||||
//@}
|
||||
//@}
|
||||
#endif /*MOC_DATATYPE_H_*/
|
||||
Reference in New Issue
Block a user