From f110fe63257686b9fcac78824d61ec429c2a5226 Mon Sep 17 00:00:00 2001 From: travisutk Date: Mon, 5 Oct 2009 13:15:32 +0000 Subject: [PATCH] Retooled plugin interface with weak linking. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@183 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- firmware/goodfet.c | 12 +++++++----- firmware/include/command.h | 7 +++++++ firmware/lib/command.c | 1 + 3 files changed, 15 insertions(+), 5 deletions(-) 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, -- 2.20.1