summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h')
-rw-r--r--lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h54
1 files changed, 53 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
index 83c8790562b..8e9d8b2235e 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
@@ -140,6 +140,9 @@ public:
lldb_private::ProcessLaunchInfo &launch_info);
+ //------------------------------------------------------------------
+ // Public Request Packets
+ //------------------------------------------------------------------
bool
SendRequestConnect (uint16_t reply_port,
uint16_t exc_port,
@@ -152,6 +155,24 @@ public:
SendRequestDisconnect ();
uint32_t
+ SendRequestReadMemory (lldb::addr_t addr,
+ void *buf,
+ uint32_t size,
+ lldb_private::Error &error);
+
+ uint32_t
+ SendRequestReadRegisters (uint32_t cpu,
+ uint32_t flavor,
+ void *dst,
+ uint32_t dst_size,
+ lldb_private::Error &error);
+// size_t
+// SendRequestWriteMemory (lldb::addr_t addr,
+// const void *buf,
+// size_t size,
+// lldb_private::Error &error);
+
+ uint32_t
GetVersion ();
uint32_t
@@ -184,9 +205,25 @@ protected:
PacketStreamType &request_packet,
uint16_t request_length);
+ //------------------------------------------------------------------
+ // Protected Request Packets (use public accessors which will cache
+ // results.
+ //------------------------------------------------------------------
bool
SendRequestVersion ();
+ bool
+ SendRequestHostInfo ();
+
+
+ void
+ DumpPacket (lldb_private::Stream &s,
+ const void *data,
+ uint32_t data_len);
+
+ void
+ DumpPacket (lldb_private::Stream &s,
+ const lldb_private::DataExtractor& extractor);
bool
VersionIsValid() const
@@ -201,7 +238,21 @@ protected:
}
bool
- SendRequestHostInfo ();
+ ExtractIsReply (uint8_t first_packet_byte) const
+ {
+ // TODO: handle big endian...
+ return (first_packet_byte & ePacketTypeMask) != 0;
+ }
+
+ CommandType
+ ExtractCommand (uint8_t first_packet_byte) const
+ {
+ // TODO: handle big endian...
+ return (CommandType)(first_packet_byte & eCommandTypeMask);
+ }
+
+ static const char *
+ GetCommandAsCString (uint8_t command);
void
ClearKDPSettings ();
@@ -214,6 +265,7 @@ protected:
//------------------------------------------------------------------
// Classes that inherit from CommunicationKDP can see and modify these
//------------------------------------------------------------------
+ uint32_t m_addr_byte_size;
lldb::ByteOrder m_byte_order;
uint32_t m_packet_timeout;
lldb_private::Mutex m_sequence_mutex; // Restrict access to sending/receiving packets to a single thread at a time
OpenPOWER on IntegriCloud