Retooled plugin interface with weak linking.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Mon, 5 Oct 2009 13:15:32 +0000 (13:15 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Mon, 5 Oct 2009 13:15:32 +0000 (13:15 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@183 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

firmware/goodfet.c
firmware/include/command.h
firmware/lib/command.c

index 4cddc19..deb2991 100644 (file)
@@ -57,11 +57,13 @@ void handle(unsigned char app,
     jtag430x2handle(app,verb,len);\r
     break;\r
   default:\r
-    #ifdef HANDLEOTHER\r
-    HANDLEOTHER(app,verb,len);\r
-    #else\r
-    txdata(app,NOK,0);\r
-    #endif\r
+    if(pluginhandle){\r
+      pluginhandle(app,verb,len);\r
+    }else{\r
+      debugstr("Plugin missing.");\r
+      txdata(app,NOK,0);\r
+    }\r
+      \r
     break;\r
   }\r
 }\r
index fe3beb1..9f6c0f4 100644 (file)
@@ -99,6 +99,13 @@ extern unsigned char silent;
 #define JTAG430_COREIP_ID 0xF0
 #define JTAG430_DEVICE_ID 0xF1
 
+//! Handle a plugin, weak-linked to error.
+extern int pluginhandle(unsigned char app,
+                       unsigned char verb,
+                       unsigned int len)
+  __attribute__ ((weak));
+
+
 //! Handle a command.  Defined in goodfet.c
 void handle(unsigned char app,
            unsigned char verb,
index d984fca..282d98a 100644 (file)
@@ -30,6 +30,7 @@ void debugstr(const char *str){
   txstring(0xFF,0xFF,str);
 }
 
+
 //! Transmit a header.
 void txhead(unsigned char app,
            unsigned char verb,