diff options
author | Øyvind Harboe <oyvind.harboe@zylin.com> | 2011-10-14 14:55:17 +0200 |
---|---|---|
committer | Øyvind Harboe <oyvindharboe@gmail.com> | 2011-10-17 12:32:38 +0000 |
commit | 80c20a186b49b30575bc9a1e1316ab0acf502512 (patch) | |
tree | a441b7e427435b1a255da303c79a916b4cfa6a85 /src/target | |
parent | ea295bd694250b077b780cfd506cf4d7f6fd1471 (diff) |
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>
Diffstat (limited to 'src/target')
-rw-r--r-- | src/target/target_request.c | 12 | ||||
-rw-r--r-- | src/target/target_request.h | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/target/target_request.c b/src/target/target_request.c index ec3d48e2..3cdca5e1 100644 --- a/src/target/target_request.c +++ b/src/target/target_request.c @@ -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; diff --git a/src/target/target_request.h b/src/target/target_request.h index e50c425e..740645ed 100644 --- a/src/target/target_request.h +++ b/src/target/target_request.h @@ -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 */ |