Mercurial > hg > Members > kono > Cerium
view TaskManager/include/types.h @ 626:ab866bc8a624
64bit mode compatibility on Cell
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 16 Nov 2009 11:37:26 +0900 |
parents | 60aa3f241b10 |
children | 8843edf37c0e |
line wrap: on
line source
#ifndef INCLUDED_TYPES #define INCLUDED_TYPES #include <stdint.h> typedef uint16_t uint16; typedef uint32_t uint32; typedef uint64_t uint64; // In LP64, sizeof(unsigned long)==8 // typedef unsigned long memaddr; // SPU's memaddr and PPU's memaddr must match. typedef char* memaddr; #define SPE_ALIGNMENT 16 #define SPE_ALIGNMENT_FULL 128 #define SPE_ALIGN __attribute__((aligned(SPE_ALIGNMENT))) #define SPE_ALIGN_FULL __attribute__((aligned(SPE_ALIGNMENT_FULL)) #define ROUND_UP_ALIGN(value, alignment) \ (((value) + ((alignment) - 1))&(~((alignment)-1))) #define DEFAULT_ALIGNMENT SPE_ALIGNMENT //#define DEFAULT_ALIGNMENT SPE_ALIGNMENT_FULL #define DMA_MAX_SIZE 16384 #define round_up16(value) ROUND_UP_ALIGN(value, 16) #define round_up128(value) ROUND_UP_ALIGN(value, 128) // ここも typedef しとくか? enum { // どの方向かで enum 分けるだろjk... // PPE -> SPE MY_SPE_NOP = 0, MY_SPE_COMMAND_EXIT, MY_SPE_COMMAND_GO, // SPE -> PPE MY_SPE_STATUS_BUSY, MY_SPE_STATUS_READY, MY_SPE_COMMAND_MALLOC, }; #define MAX_USE_SPE_NUM 6 typedef enum { CPU_PPE = 0, // default CPU_SPE = 1, SPE_ANY = CPU_SPE, SPE_0 = 2, SPE_1 = 3, SPE_2 = 4, SPE_3 = 5, SPE_4 = 6, SPE_5 = 7, } CPU_TYPE; #endif