add FLASH_BANK_COMMAND_HANDLER macro
authorZachary T Welch <zw@superlucidity.net>
Tue, 10 Nov 2009 09:39:30 +0000 (01:39 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 13 Nov 2009 18:51:46 +0000 (10:51 -0800)
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.

src/flash/flash.h

index 7f5875edde3dd79a2ac331748c81243c8c9629b8..7afb13274c2c09a5fc80a136e57569cf45839ba0 100644 (file)
@@ -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.