static pld_device_t *pld_devices;
static command_t *pld_cmd;
-static int handle_pld_devices_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc);
-static int handle_pld_device_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc);
-static int handle_pld_load_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc);
-
-int pld_init(struct command_context_s *cmd_ctx)
-{
- if (pld_devices)
- {
- register_command(cmd_ctx, pld_cmd, "devices", handle_pld_devices_command, COMMAND_EXEC,
- "list configured pld devices");
- register_command(cmd_ctx, pld_cmd, "load", handle_pld_load_command, COMMAND_EXEC,
- "load configuration <file> into programmable logic device");
- }
-
- return ERROR_OK;
-}
-
pld_device_t *get_pld_device_by_num(int num)
{
pld_device_t *p;
/* pld device <driver> [driver_options ...]
*/
-static int handle_pld_device_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_pld_device_command)
{
int i;
int found = 0;
return ERROR_OK;
}
-static int handle_pld_devices_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_pld_devices_command)
{
pld_device_t *p;
int i = 0;
return ERROR_OK;
}
-static int handle_pld_load_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc)
+COMMAND_HANDLER(handle_pld_load_command)
{
int retval;
struct timeval start, end, duration;
return ERROR_OK;
}
- p = get_pld_device_by_num(strtoul(args[0], NULL, 0));
+ unsigned dev_id;
+ COMMAND_PARSE_NUMBER(uint, args[0], dev_id);
+ p = get_pld_device_by_num(dev_id);
if (!p)
{
command_print(cmd_ctx, "pld device '#%s' is out of bounds", args[0]);
if ((retval = p->driver->load(p, args[1])) != ERROR_OK)
{
- command_print(cmd_ctx, "failed loading file %s to pld device %lu",
- args[1], strtoul(args[0], NULL, 0));
+ command_print(cmd_ctx, "failed loading file %s to pld device %u",
+ args[1], dev_id);
switch (retval)
{
}
+ return retval;
}
else
{
gettimeofday(&end, NULL);
timeval_subtract(&duration, &end, &start);
- command_print(cmd_ctx, "loaded file %s to pld device %lu in %jis %jius",
- args[1], strtoul(args[0], NULL, 0),
+ command_print(cmd_ctx, "loaded file %s to pld device %u in %jis %jius",
+ args[1], dev_id,
(intmax_t)duration.tv_sec, (intmax_t)duration.tv_usec);
}
return ERROR_OK;
}
+int pld_init(struct command_context_s *cmd_ctx)
+{
+ if (!pld_devices)
+ return ERROR_OK;
+
+ register_command(cmd_ctx, pld_cmd, "devices",
+ handle_pld_devices_command, COMMAND_EXEC,
+ "list configured pld devices");
+ register_command(cmd_ctx, pld_cmd, "load",
+ handle_pld_load_command, COMMAND_EXEC,
+ "load configuration <file> into programmable logic device");
+
+ return ERROR_OK;
+}
+
int pld_register_commands(struct command_context_s *cmd_ctx)
{
pld_cmd = register_command(cmd_ctx, NULL, "pld", NULL, COMMAND_ANY, "programmable logic device commands");