summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/RNBRemote.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2014-02-21 19:08:33 +0000
committerGreg Clayton <gclayton@apple.com>2014-02-21 19:08:33 +0000
commite5671d9cee5a8d2ae6ebb4f5369d2d3927125ceb (patch)
tree897230df19916ef71a683dd1bdb5c1020830bdfc /lldb/tools/debugserver/source/RNBRemote.cpp
parentb922aa9efc3ae660b127117ba3426d8aefd9d77d (diff)
downloadbcm5719-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.cpp25
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)
{
OpenPOWER on IntegriCloud