dol: initial dol commit
[jump.git] / dol / src / dol / visitor / cbe / lib / common.h
diff --git a/dol/src/dol/visitor/cbe/lib/common.h b/dol/src/dol/visitor/cbe/lib/common.h
new file mode 100644 (file)
index 0000000..9370673
--- /dev/null
@@ -0,0 +1,59 @@
+/**************************************************************** \r
+ *     COMMON.H\r
+ *     Creator: lschor, 2008-10-30\r
+ *     Description: Specifies some structs and Constants for the CBE-DOL-Implementation\r
+ *     \r
+ *     Revision: \r
+ *     - 2008-10-30: Created\r
+ */\r
+\r
+#ifndef _COMMON_H_\r
+#define _COMMON_H_\r
+\r
+#include "dol.h"\r
+#include "lib/constant.h"\r
+\r
+#define SPE_WRITE_DEMAND 0\r
+#define SPE_READ_DEMAND 1\r
+#define SPE_WRITE_SUC 2\r
+#define SPE_READ_SUC 3\r
+#define SPE_DETACH 4\r
+\r
+// the context that PPE forward to SPE\r
+typedef struct{\r
+       uint64_t port_id;\r
+       uint64_t port_queue_id; \r
+\r
+       uint64_t processName;   // Address for the name of the process\r
+       uint64_t processNameLen;  // Len of the process Name\r
+\r
+       uint32_t number_of_ports; \r
+       uint32_t is_detached; \r
+       uint32_t padd[2]; // dummy - for alignment --> It always has to be a multiple of 128 bit! \r
+} parm_context; // aligned to 16B \r
+\r
+typedef struct{\r
+       uint32_t d; \r
+       uint32_t padd[31]; //padd to cache line\r
+} status_s;\r
+\r
+\r
+// Round a number ot the right DMA number --> Is used for DMA transfers\r
+uint32_t roundDMA(uint32_t number)\r
+{\r
+       if (number > 16)\r
+               return number + 16 - (number % 16);\r
+       else if (number > 8)\r
+               return 16; \r
+       else if (number > 4)\r
+               return 8; \r
+       else if (number > 2)\r
+               return 4; \r
+       else if (number > 1)\r
+               return 2; \r
+       else \r
+               return 1; \r
+}\r
+\r
+#endif // _COMMON_H_ \r
+\r