From 292453d3060abf81e13aeb7bc7d76d3c3709da79 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 15 Jun 2017 15:06:10 -0400 Subject: command: Move command_task() to board specific code Move the command_task() code from the generic code to the board specific code. This enables more flexibility in how the board specific code processes input. Signed-off-by: Kevin O'Connor --- src/pru/main.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/pru') diff --git a/src/pru/main.c b/src/pru/main.c index 9a132a02..cebcaa26 100644 --- a/src/pru/main.c +++ b/src/pru/main.c @@ -100,7 +100,7 @@ DECL_INIT(timer_init); ****************************************************************/ // Return a buffer (and length) containing any incoming messages -char * +static char * console_get_input(uint8_t *plen) { uint32_t read_count = readl(&SHARED_MEM->read_count); @@ -111,12 +111,25 @@ console_get_input(uint8_t *plen) } // Remove from the receive buffer the given number of bytes -void +static void console_pop_input(uint8_t len) { writel(&SHARED_MEM->read_count, 0); } +// Process any incoming commands +void +console_task(void) +{ + uint8_t buf_len, pop_count; + char *buf = console_get_input(&buf_len); + int8_t ret = command_find_block(buf, buf_len, &pop_count); + if (ret) + command_dispatch(buf, pop_count); + console_pop_input(pop_count); +} +DECL_TASK(console_task); + // Return an output buffer that the caller may fill with transmit messages char * console_get_output(uint8_t len) -- cgit v1.2.3-70-g09d2