minidol: initial commit
[jump.git] / minidol / esrc / Square.c
diff --git a/minidol/esrc/Square.c b/minidol/esrc/Square.c
new file mode 100644 (file)
index 0000000..017f19f
--- /dev/null
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include "Square.h"
+
+#include "../shared.h"
+extern shm_t shm;
+
+void Square_delay(void)
+{
+       for(volatile int a = 0; a < 25; a++)
+               for(volatile int b = 0; b < 25; b++)
+                       ;
+}
+
+void Square_init(DOLProcess *p) {
+       ((Square_State*)p->local)->index = 0;
+}
+
+int Square_fire(DOLProcess *p) {
+       float i;
+
+       if (((Square_State*)p->local)->index < LENGTH) {
+               DOL_read(PORT_INPUT, &i, sizeof(float), p);
+               i = i*i;
+               DOL_write(PORT_OUTPUT, &i, sizeof(float), p);
+               ((Square_State*)p->local)->index++;
+       } else {
+               DOL_detach(p);
+       }
+
+       return 0;
+}