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;
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;
}
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;
}