command: Add command_decode_ptr() helper

Add a helper function to convert from a string buffer passed in the
args[] parameter to an actual pointer.  This avoids all the callers
needing to perfrom pointer manipulation.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2020-10-29 23:54:17 -04:00
parent aaf3dc6ac3
commit 473828ca6a
10 changed files with 38 additions and 30 deletions

View file

@ -48,7 +48,7 @@ void
command_debug_read(uint32_t *args)
{
uint8_t order = args[0];
void *ptr = (void*)(size_t)args[1];
void *ptr = command_decode_ptr(args[1]);
uint32_t v;
irqstatus_t flag = irq_save();
switch (order) {
@ -66,7 +66,7 @@ void
command_debug_write(uint32_t *args)
{
uint8_t order = args[0];
void *ptr = (void*)(size_t)args[1];
void *ptr = command_decode_ptr(args[1]);
uint32_t v = args[2];
irqstatus_t flag = irq_save();
switch (order) {
@ -83,7 +83,7 @@ void
command_debug_ping(uint32_t *args)
{
uint8_t len = args[0];
char *data = (void*)(size_t)args[1];
char *data = command_decode_ptr(args[1]);
sendf("pong data=%*s", len, data);
}
DECL_COMMAND_FLAGS(command_debug_ping, HF_IN_SHUTDOWN, "debug_ping data=%*s");