--- /dev/null
+/****************************************************************
+ * COMMON.H
+ * Creator: lschor, 2008-10-30
+ * Description: Specifies some structs and Constants for the CBE-DOL-Implementation
+ *
+ * Revision:
+ * - 2008-10-30: Created
+ */
+
+#ifndef _COMMON_H_
+#define _COMMON_H_
+
+#include <stdint.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#include "dol.h"
+#include "constant.h"
+
+#define SPE_READ_DEMAND 0
+#define SPE_READ_COMPLETE 1
+#define SPE_COMPLETE 2
+
+// Context for one process --> 384 bit
+typedef struct{
+ uint64_t port_id;
+ uint64_t port_queue_id;
+
+ uint64_t processName; // Address for the name of the process
+ uint64_t processNameLen; // Len of the process Name
+
+ uint32_t number_of_ports;
+ uint32_t is_detached;
+ uint32_t padd[2]; // dummy - for alignment --> It always has to be a multiple of 128 bit!
+} process_context;
+
+// Context for one SPU --> This is send to him!
+typedef struct{
+ uint64_t procContents;
+ uint64_t procContentsLen;
+
+ uint64_t procContentsAll;
+ uint64_t queueFromSPU;
+ uint64_t queueOnSPU;
+
+ uint64_t fifoTails;
+
+ uint64_t ea_base; // Base address of the context
+ uint32_t padd[2]; // dummy - for alignment --> It always has to be a multiple of 128 bit!
+} spu_context;
+
+
+// Create a message to send the queue offset
+// 8 bit: queue number
+// 24 bit: offset of the LS
+#define CREATEQUEUEMESSAGE(_queue, _offset) \
+ ((_queue << 24) | (_offset))
+
+#define QUEUEMSGQUEUE(_message) \
+ ((_message >> 24) & 0xFF)
+
+#define QUEUEMSGOFFSET(_message) \
+ ((_message >> 0) & 0xFFFFFF)
+
+
+// Create the message we like to send, format:
+// 4 bit: code (total 16 possibilities)
+// 9 bit: queue (total 512 possibilities)
+// 19 bit: len
+#define CREATEFASTMESSAGE(_code, _queue, _len) \
+ ((_code << 28) | (_queue << 19) | (_len))
+
+// Get the code from a message
+#define GETFASTCODE(_message) \
+ ((_message >> 28) & 0xF)
+
+// Get the queue from a message
+#define GETFASTQUEUE(_message) \
+ ((_message >> 19) & 0x1FF)
+
+// Get the len from a message
+#define GETFASTLEN(_message) \
+ ((_message >> 0) & 0x7FFFF)
+
+#define MSG_OK 19
+
+// Round a number ot the right DMA number --> Is used for DMA transfers
+uint32_t roundDMA(uint32_t number);
+
+#endif // _COMMON_H_
+