#include "config.h"
#endif
+#include <helper/log.h>
+#include <helper/binarybuffer.h>
+
+#include "target.h"
#include "target_request.h"
#include "target_type.h"
-#include "binarybuffer.h"
#include "trace.h"
-#include "log.h"
-static command_t *target_request_cmd = NULL;
static int charmsg_mode = 0;
static int target_asciimsg(struct target *target, uint32_t length)
{
- char *msg = malloc(CEIL(length + 1, 4) * 4);
+ char *msg = malloc(DIV_ROUND_UP(length + 1, 4) * 4);
struct debug_msg_receiver *c = target->dbgmsg;
- target->type->target_request_data(target, CEIL(length, 4), (uint8_t*)msg);
+ target->type->target_request_data(target, DIV_ROUND_UP(length, 4), (uint8_t*)msg);
msg[length] = 0;
LOG_DEBUG("%s", msg);
static int target_hexmsg(struct target *target, int size, uint32_t length)
{
- uint8_t *data = malloc(CEIL(length * size, 4) * 4);
+ uint8_t *data = malloc(DIV_ROUND_UP(length * size, 4) * 4);
char line[128];
int line_len;
struct debug_msg_receiver *c = target->dbgmsg;
LOG_DEBUG("size: %i, length: %i", (int)size, (int)length);
- target->type->target_request_data(target, CEIL(length * size, 4), (uint8_t*)data);
+ target->type->target_request_data(target, DIV_ROUND_UP(length * size, 4), (uint8_t*)data);
line_len = 0;
for (i = 0; i < length; i++)
return ERROR_OK;
}
-static int add_debug_msg_receiver(struct command_context_s *cmd_ctx, struct target *target)
+static int add_debug_msg_receiver(struct command_context *cmd_ctx, struct target *target)
{
struct debug_msg_receiver **p = &target->dbgmsg;
return ERROR_OK;
}
-static struct debug_msg_receiver* find_debug_msg_receiver(struct command_context_s *cmd_ctx, struct target *target)
+static struct debug_msg_receiver* find_debug_msg_receiver(struct command_context *cmd_ctx, struct target *target)
{
int do_all_targets = 0;
struct debug_msg_receiver **p = &target->dbgmsg;
return NULL;
}
-int delete_debug_msg_receiver(struct command_context_s *cmd_ctx, struct target *target)
+int delete_debug_msg_receiver(struct command_context *cmd_ctx, struct target *target)
{
struct debug_msg_receiver **p;
struct debug_msg_receiver *c;
COMMAND_HANDLER(handle_target_request_debugmsgs_command)
{
- struct target *target = get_current_target(cmd_ctx);
+ struct target *target = get_current_target(CMD_CTX);
int receiving = 0;
/* see if reciever is already registered */
- if (find_debug_msg_receiver(cmd_ctx, target) != NULL)
+ if (find_debug_msg_receiver(CMD_CTX, target) != NULL)
receiving = 1;
- if (argc > 0)
+ if (CMD_ARGC > 0)
{
- if (!strcmp(args[0], "enable") || !strcmp(args[0], "charmsg"))
+ if (!strcmp(CMD_ARGV[0], "enable") || !strcmp(CMD_ARGV[0], "charmsg"))
{
/* don't register if this command context is already receiving */
if (!receiving)
{
receiving = 1;
- add_debug_msg_receiver(cmd_ctx, target);
+ add_debug_msg_receiver(CMD_CTX, target);
}
- charmsg_mode = !strcmp(args[0], "charmsg");
+ charmsg_mode = !strcmp(CMD_ARGV[0], "charmsg");
}
- else if (!strcmp(args[0], "disable"))
+ else if (!strcmp(CMD_ARGV[0], "disable"))
{
/* no need to delete a receiver if none is registered */
if (receiving)
{
receiving = 0;
- delete_debug_msg_receiver(cmd_ctx, target);
+ delete_debug_msg_receiver(CMD_CTX, target);
}
}
else
{
- command_print(cmd_ctx, "usage: target_request debugmsgs ['enable'|'disable'|'charmsg']");
+ command_print(CMD_CTX, "usage: target_request debugmsgs ['enable'|'disable'|'charmsg']");
}
}
- command_print(cmd_ctx, "receiving debug messages from current target %s",
+ command_print(CMD_CTX, "receiving debug messages from current target %s",
(receiving) ? (charmsg_mode?"charmsg":"enabled") : "disabled");
return ERROR_OK;
}
-int target_request_register_commands(struct command_context_s *cmd_ctx)
+static const struct command_registration target_req_exec_command_handlers[] = {
+ {
+ .name = "debugmsgs",
+ .handler = handle_target_request_debugmsgs_command,
+ .mode = COMMAND_EXEC,
+ .help = "display and/or modify reception of debug messages from target",
+ .usage = "['enable'|'charmsg'|'disable']",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration target_req_command_handlers[] = {
+ {
+ .name = "target_request",
+ .mode = COMMAND_ANY,
+ .help = "target request command group",
+ .chain = target_req_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
+int target_request_register_commands(struct command_context *cmd_ctx)
{
- target_request_cmd =
- register_command(cmd_ctx, NULL, "target_request", NULL, COMMAND_ANY, "target_request commands");
-
- register_command(cmd_ctx, target_request_cmd, "debugmsgs", handle_target_request_debugmsgs_command,
- COMMAND_EXEC, "enable/disable reception of debug messages from target");
-
- return ERROR_OK;
+ return register_commands(cmd_ctx, NULL, target_req_command_handlers);
}