dol: initial dol commit
[jump.git] / dol / src / dol / visitor / yapi / lib / dolSupport.cpp
diff --git a/dol/src/dol/visitor/yapi/lib/dolSupport.cpp b/dol/src/dol/visitor/yapi/lib/dolSupport.cpp
new file mode 100644 (file)
index 0000000..164e1a6
--- /dev/null
@@ -0,0 +1,81 @@
+#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