From: travisutk Date: Mon, 5 Oct 2009 13:15:32 +0000 (+0000) Subject: Retooled plugin interface with weak linking. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=f110fe63257686b9fcac78824d61ec429c2a5226 Retooled plugin interface with weak linking. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@183 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/firmware/goodfet.c b/firmware/goodfet.c index 4cddc19..deb2991 100644 --- a/firmware/goodfet.c +++ b/firmware/goodfet.c @@ -57,11 +57,13 @@ void handle(unsigned char app, jtag430x2handle(app,verb,len); break; default: - #ifdef HANDLEOTHER - HANDLEOTHER(app,verb,len); - #else - txdata(app,NOK,0); - #endif + if(pluginhandle){ + pluginhandle(app,verb,len); + }else{ + debugstr("Plugin missing."); + txdata(app,NOK,0); + } + break; } } diff --git a/firmware/include/command.h b/firmware/include/command.h index fe3beb1..9f6c0f4 100644 --- a/firmware/include/command.h +++ b/firmware/include/command.h @@ -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, diff --git a/firmware/lib/command.c b/firmware/lib/command.c index d984fca..282d98a 100644 --- a/firmware/lib/command.c +++ b/firmware/lib/command.c @@ -30,6 +30,7 @@ void debugstr(const char *str){ txstring(0xFF,0xFF,str); } + //! Transmit a header. void txhead(unsigned char app, unsigned char verb,