target_request: add target_got_message() that can be used to improve DCC performance

API change to allow implementing a back-off algorithm for
polling hardware.

Change-Id: I6cbe8b4534c8dfeb8442305171ea96b5481c1f17
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Reviewed-on: http://openocd.zylin.com/26
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
Tested-by: Øyvind Harboe <oyvindharboe@gmail.com>
This commit is contained in:
Øyvind Harboe 2011-10-14 14:55:17 +02:00 committed by Øyvind Harboe
parent ea295bd694
commit 80c20a186b
2 changed files with 19 additions and 0 deletions

View File

@ -36,6 +36,15 @@
#include "trace.h"
static bool got_message = false;
bool target_got_message(void)
{
bool t = got_message;
got_message = false;
return t;
}
static int charmsg_mode = 0;
static int target_asciimsg(struct target *target, uint32_t length)
@ -118,6 +127,9 @@ int target_request(struct target *target, uint32_t request)
{
target_req_cmd_t target_req_cmd = request & 0xff;
/* Record that we got a target message for back-off algorithm */
got_message = true;
if (charmsg_mode) {
target_charmsg(target, target_req_cmd);
return ERROR_OK;

View File

@ -47,5 +47,12 @@ int target_request(struct target *target, uint32_t request);
int delete_debug_msg_receiver(struct command_context *cmd_ctx,
struct target *target);
int target_request_register_commands(struct command_context *cmd_ctx);
/**
* Read and clear the flag as to whether we got a message.
*
* This is used to implement the back-off algorithm on
* sleeping in idle mode.
*/
bool target_got_message(void);
#endif /* TARGET_REQUEST_H */