From: Zachary T Welch Date: Tue, 10 Nov 2009 09:21:29 +0000 (-0800) Subject: add PLD_DEVICE_COMMAND_HANDLER macro X-Git-Tag: v0.4.0-rc1~803 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1df5cc18f51366b823bccdaec4ffa1ee3fac2447;p=openocd add PLD_DEVICE_COMMAND_HANDLER macro Update virtex module to use abstracted PLD command handling. --- diff --git a/src/pld/pld.h b/src/pld/pld.h index 3db4bad0..22f2c137 100644 --- a/src/pld/pld.h +++ b/src/pld/pld.h @@ -24,14 +24,19 @@ struct pld_device_s; +#define __PLD_DEVICE_COMMAND(name) \ + COMMAND_HELPER(name, struct pld_device_s *pld) + typedef struct pld_driver_s { char *name; + __PLD_DEVICE_COMMAND((*pld_device_command)); int (*register_commands)(struct command_context_s *cmd_ctx); - int (*pld_device_command)(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct pld_device_s *pld_device); int (*load)(struct pld_device_s *pld_device, const char *filename); } pld_driver_t; +#define PLD_DEVICE_COMMAND_HANDLER(name) static __PLD_DEVICE_COMMAND(name) + typedef struct pld_device_s { pld_driver_t *driver; diff --git a/src/pld/virtex2.c b/src/pld/virtex2.c index 3c6d61fe..7e422fb9 100644 --- a/src/pld/virtex2.c +++ b/src/pld/virtex2.c @@ -207,8 +207,7 @@ COMMAND_HANDLER(virtex2_handle_read_stat_command) return ERROR_OK; } -static int virtex2_pld_device_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc, struct pld_device_s *pld_device) +PLD_DEVICE_COMMAND_HANDLER(virtex2_pld_device_command) { jtag_tap_t *tap; @@ -227,9 +226,10 @@ static int virtex2_pld_device_command(struct command_context_s *cmd_ctx, } virtex2_info = malloc(sizeof(virtex2_pld_device_t)); - pld_device->driver_priv = virtex2_info; virtex2_info->tap = tap; + pld->driver_priv = virtex2_info; + return ERROR_OK; }