add FLASH_BANK_COMMAND_HANDLER macro

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.
This commit is contained in:
Zachary T Welch 2009-11-10 01:39:30 -08:00
parent 76868e0713
commit 57c5c5f463
1 changed files with 6 additions and 2 deletions

View File

@ -59,6 +59,9 @@ typedef struct flash_sector_s
struct flash_bank_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 * @brief Provides the implementation-independent structure that defines
* all of the callbacks required by OpenOCD flash drivers. * 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. * @returns ERROR_OK if successful; otherwise, an error code.
*/ */
int (*flash_bank_command)(struct command_context_s *cmd_ctx, __FLASH_BANK_COMMAND((*flash_bank_command));
char *cmd, char **args, int argc, struct flash_bank_s *bank);
/** /**
* Bank/sector erase routine (target-specific). When * Bank/sector erase routine (target-specific). When
@ -224,6 +226,8 @@ typedef struct flash_driver_s
int (*auto_probe)(struct flash_bank_s *bank); int (*auto_probe)(struct flash_bank_s *bank);
} flash_driver_t; } 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 * Provides details of a flash bank, available either on-chip or through
* a major interface. * a major interface.