diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-11-10 01:21:29 -0800 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-13 10:51:46 -0800 |
commit | 1df5cc18f51366b823bccdaec4ffa1ee3fac2447 (patch) | |
tree | 8871c7d335892e8867d037bf79de53c68b5a9592 /src/pld | |
parent | 670f999e7a1ec04cda599a5487de068379e36f0e (diff) | |
download | openocd_libswd-1df5cc18f51366b823bccdaec4ffa1ee3fac2447.tar.gz openocd_libswd-1df5cc18f51366b823bccdaec4ffa1ee3fac2447.tar.bz2 openocd_libswd-1df5cc18f51366b823bccdaec4ffa1ee3fac2447.tar.xz openocd_libswd-1df5cc18f51366b823bccdaec4ffa1ee3fac2447.zip |
add PLD_DEVICE_COMMAND_HANDLER macro
Update virtex module to use abstracted PLD command handling.
Diffstat (limited to 'src/pld')
-rw-r--r-- | src/pld/pld.h | 7 | ||||
-rw-r--r-- | src/pld/virtex2.c | 6 |
2 files changed, 9 insertions, 4 deletions
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; } |