From 78c108740b69491c5e5f74bb8b2360ecfbc4ab00 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Fri, 27 May 2016 11:39:18 +0200
Subject: [PATCH] Cleaning up mc directory

---
 mc/.gitignore       |  5 +++++
 mc/Makefile         |  3 ++-
 mc/README           |  3 +++
 mc/hijacknet_test.c | 55 +++++++++++++++++++++++++++++++++++++++++++++
 mc/labcomm_compat.h |  1 +
 5 files changed, 66 insertions(+), 1 deletion(-)
 create mode 100644 mc/.gitignore
 create mode 100644 mc/README
 create mode 100644 mc/hijacknet_test.c
 create mode 100644 mc/labcomm_compat.h

diff --git a/mc/.gitignore b/mc/.gitignore
new file mode 100644
index 0000000..1999620
--- /dev/null
+++ b/mc/.gitignore
@@ -0,0 +1,5 @@
+/*.mc
+/extctrl2014_lc.h
+/extctrl2014_lc.c
+/mc.globalize
+/mc.globalize.c
diff --git a/mc/Makefile b/mc/Makefile
index 36df281..d77a88f 100644
--- a/mc/Makefile
+++ b/mc/Makefile
@@ -7,7 +7,8 @@ TARGETS=lth_fixes.mc \
 	hijacknet_test.mc \
 	extctrl2014_lc.mc
 AUTO_GEN=extctrl2014_lc.c \
-	 extctrl2014_lc.h
+	 extctrl2014_lc.h \
+	 mc.globalize.c
 GLOBALIZE=netFuncs \
 	  fei82557Int \
 	  fei82557Send \
diff --git a/mc/README b/mc/README
new file mode 100644
index 0000000..c1d34e5
--- /dev/null
+++ b/mc/README
@@ -0,0 +1,3 @@
+make
+make globalize ROBOT=yoda.b
+make commands ROBOT=yoda.b
diff --git a/mc/hijacknet_test.c b/mc/hijacknet_test.c
new file mode 100644
index 0000000..0d4ae8c
--- /dev/null
+++ b/mc/hijacknet_test.c
@@ -0,0 +1,55 @@
+#include <hijacknet.h>
+#include <fppLib.h>
+#include <stdio.h> 
+#include <string.h>
+
+static int N;
+static struct {
+  int length;
+  unsigned char data[1520];
+} to_send;
+
+static int hook(HIJACKNET_DRIVER *driver,
+                void *data, int length,
+                void *context)
+{
+  FP_CONTEXT  fp_context;
+
+  fppSave(&fp_context);
+  N++;
+  if (to_send.length == 0) {
+    to_send.length = min(length, sizeof(to_send.data));
+    memcpy(to_send.data, data, to_send.length);
+  }
+  fppRestore(&fp_context);
+  return length;
+}
+
+int hijacknet_test(char *device)
+{
+  HIJACKNET_DRIVER *driver;
+  int result;
+  int i;
+  
+  printf("%s %d\n", device, N);
+  driver = hijacknet_open(device);
+  if (!driver) {
+    goto out;
+  }
+  result = hijacknet_add_receive_hook(driver, HIJACK_ANY_ETHER_TYPE, 
+                                      hook, NULL);
+  for (i = 0 ; i < 10000 ; i++) {
+    if (to_send.length) {
+      to_send.data[0] = 0xff;
+      hijacknet_send(driver, to_send.data, to_send.length);
+      to_send.length = 0;
+    }
+    taskDelay(1);
+  }
+  result = hijacknet_del_receive_hook(driver, HIJACK_ANY_ETHER_TYPE, 
+                                      hook, NULL);
+  printf("%s %d\n", device, N);
+  hijacknet_close(driver);
+out:
+  return 0;
+}
diff --git a/mc/labcomm_compat.h b/mc/labcomm_compat.h
new file mode 100644
index 0000000..841103c
--- /dev/null
+++ b/mc/labcomm_compat.h
@@ -0,0 +1 @@
+#include <types.h>
-- 
GitLab