+#include "dolSupport.h"\r
+#include "ProcessWrapper.h"\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned dolwrite(OutPort<char> *out, const void *buf, unsigned len, const DOLProcess *process)\r
+{\r
+ write(*out, (char*)buf, len);\r
+ return len;\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned dolread(InPort<char> *in, const void *buf, unsigned len, const DOLProcess *process) {\r
+ read(*in, (char*)buf, len);\r
+ return len;\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void DOL_detach(DOLProcess* p) {\r
+ static_cast<ProcessWrapper *>(p->wptr)->detach();\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void createPort(void** port,\r
+ void* base,\r
+ int number_of_indices,\r
+ int index0, int range0) {\r
+ *port = (void**)((void**)base)[index0];\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void createPort(void** port,\r
+ void* base,\r
+ int number_of_indices,\r
+ int index0, int range0,\r
+ int index1, int range1) {\r
+ *port = (void**)((void**)base)[index0 * range1 + index1];\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void createPort(void** port,\r
+ void* base,\r
+ int number_of_indices,\r
+ int index0, int range0,\r
+ int index1, int range1,\r
+ int index2, int range2) {\r
+ *port = (void**)((void**)base)[index0 * range1 * range2\r
+ + index1 * range2 + index2];\r
+}\r
+\r
+\r
+/**\r
+ *\r
+ */\r
+void createPort(void** port,\r
+ void* base,\r
+ int number_of_indices,\r
+ int index0, int range0,\r
+ int index1, int range1,\r
+ int index2, int range2,\r
+ int index3, int range3) {\r
+ *port = (void**)((void**)base)[index0 * range1 * range2 * range3\r
+ + index1 * range2 * range3\r
+ + index2 * range3\r
+ + index3];\r
+}\r