--- /dev/null
+#include "dolSupport.h"\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned read(void* fifo, void* buf, unsigned len, DOLProcess* p) {\r
+ return ((Fifo*)fifo)->read(buf, len);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned write(void* fifo, void* buf, unsigned len, DOLProcess* p) {\r
+ return ((Fifo*)fifo)->write(buf, len);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned reserve(void* fifo, void** destination, unsigned len, DOLProcess* p) {\r
+ return ((WindowedFifo*)fifo)->reserve(destination, len);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void release(void* fifo, DOLProcess* p) {\r
+ ((WindowedFifo*)fifo)->release();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+unsigned capture(void* fifo, void** destination, unsigned len, DOLProcess* p) {\r
+ return ((WindowedFifo*)fifo)->capture(destination, len);\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void consume(void* fifo, DOLProcess* p) {\r
+ ((WindowedFifo*)fifo)->consume();\r
+}\r
+\r
+/**\r
+ *\r
+ */\r
+void DOL_detach(DOLProcess* p) {\r
+ static_cast<ProcessWrapper *>((static_cast<process_data *>(p->wptr))->wrapper)->detach();\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
+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
+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
+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