diff options
| author | Greg Clayton <gclayton@apple.com> | 2014-02-21 19:08:33 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2014-02-21 19:08:33 +0000 |
| commit | e5671d9cee5a8d2ae6ebb4f5369d2d3927125ceb (patch) | |
| tree | 897230df19916ef71a683dd1bdb5c1020830bdfc /lldb/tools/debugserver/source/RNBRemote.cpp | |
| parent | b922aa9efc3ae660b127117ba3426d8aefd9d77d (diff) | |
| download | bcm5719-llvm-e5671d9cee5a8d2ae6ebb4f5369d2d3927125ceb.tar.gz bcm5719-llvm-e5671d9cee5a8d2ae6ebb4f5369d2d3927125ceb.zip | |
Add support for the qSpeedTest packet so we can test packet speeds and data throughput.
llvm-svn: 201874
Diffstat (limited to 'lldb/tools/debugserver/source/RNBRemote.cpp')
| -rw-r--r-- | lldb/tools/debugserver/source/RNBRemote.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/lldb/tools/debugserver/source/RNBRemote.cpp b/lldb/tools/debugserver/source/RNBRemote.cpp index 96939e421eb..2f38e49d5b4 100644 --- a/lldb/tools/debugserver/source/RNBRemote.cpp +++ b/lldb/tools/debugserver/source/RNBRemote.cpp @@ -197,7 +197,7 @@ RNBRemote::CreatePacketTable () t.push_back (Packet (get_profile_data, &RNBRemote::HandlePacket_GetProfileData, NULL, "qGetProfileData", "Return profiling data of the current target.")); t.push_back (Packet (set_enable_profiling, &RNBRemote::HandlePacket_SetEnableAsyncProfiling, NULL, "QSetEnableAsyncProfiling", "Enable or disable the profiling of current target.")); t.push_back (Packet (watchpoint_support_info, &RNBRemote::HandlePacket_WatchpointSupportInfo, NULL, "qWatchpointSupportInfo", "Return the number of supported hardware watchpoints")); - + t.push_back (Packet (speed_test, &RNBRemote::HandlePacket_qSpeedTest, NULL, "qSpeedTest:", "Test the maximum speed at which packet can be sent/received.")); } @@ -3506,6 +3506,29 @@ RNBRemote::HandlePacket_SetEnableAsyncProfiling (const char *p) return SendPacket ("OK"); } + +rnb_err_t +RNBRemote::HandlePacket_qSpeedTest (const char *p) +{ + p += strlen ("qSpeedTest:response_size:"); + char *end = NULL; + errno = 0; + uint64_t response_size = ::strtoul (p, &end, 16); + if (errno != 0) + return HandlePacket_ILLFORMED (__FILE__, __LINE__, p, "Didn't find response_size value at right offset"); + else if (*end == ';') + { + static char g_data[4*1024*1024+16] = "data:"; + memset(g_data + 5, 'a', response_size); + g_data[response_size + 5] = '\0'; + return SendPacket (g_data); + } + else + { + return SendPacket ("E79"); + } +} + rnb_err_t RNBRemote::HandlePacket_WatchpointSupportInfo (const char *p) { |

