The FLASH_BANK_COMMAND_HANDLER provides an extended command handler
using the __COMMAND_HANDLER macro, whereby changing that macro is
sufficient to update flash handlers with the new signature.  It also
enforces uniform style and scope when implementing this handler.

Signed-off-by: Zachary T Welch <z...@superlucidity.net>
---
 src/flash/flash.h |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/flash/flash.h b/src/flash/flash.h
index 7f5875e..7afb132 100644
--- a/src/flash/flash.h
+++ b/src/flash/flash.h
@@ -59,6 +59,9 @@ typedef struct flash_sector_s
 
 struct flash_bank_s;
 
+#define __FLASH_BANK_COMMAND(name) \
+               COMMAND_HELPER(name, struct flash_bank_s *bank)
+
 /**
  * @brief Provides the implementation-independent structure that defines
  * all of the callbacks required by OpenOCD flash drivers.
@@ -121,8 +124,7 @@ typedef struct flash_driver_s
         *
         * @returns ERROR_OK if successful; otherwise, an error code.
         */
-       int (*flash_bank_command)(struct command_context_s *cmd_ctx,
-                       char *cmd, char **args, int argc, struct flash_bank_s 
*bank);
+       __FLASH_BANK_COMMAND((*flash_bank_command));
 
        /**
         * Bank/sector erase routine (target-specific).  When
@@ -224,6 +226,8 @@ typedef struct flash_driver_s
        int (*auto_probe)(struct flash_bank_s *bank);
 } flash_driver_t;
 
+#define FLASH_BANK_COMMAND_HANDLER(name) static __FLASH_BANK_COMMAND(name)
+
 /**
  * Provides details of a flash bank, available either on-chip or through
  * a major interface.
-- 
1.6.4.4

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to