summaryrefslogtreecommitdiff
path: root/source/Plugins/Process/Windows/Common/ProcessWindows.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/Process/Windows/Common/ProcessWindows.h')
-rw-r--r--source/Plugins/Process/Windows/Common/ProcessWindows.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/source/Plugins/Process/Windows/Common/ProcessWindows.h b/source/Plugins/Process/Windows/Common/ProcessWindows.h
new file mode 100644
index 000000000000..2a437c0ca909
--- /dev/null
+++ b/source/Plugins/Process/Windows/Common/ProcessWindows.h
@@ -0,0 +1,52 @@
+//===-- ProcessWindows.h ----------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_Plugins_Process_Windows_Common_ProcessWindows_H_
+#define liblldb_Plugins_Process_Windows_Common_ProcessWindows_H_
+
+// Other libraries and framework includes
+#include "lldb/lldb-forward.h"
+#include "lldb/Core/Error.h"
+#include "lldb/Target/Process.h"
+
+namespace lldb_private
+{
+
+class ProcessWindows : public lldb_private::Process
+{
+public:
+ //------------------------------------------------------------------
+ // Constructors and destructors
+ //------------------------------------------------------------------
+ ProcessWindows(lldb::TargetSP target_sp,
+ lldb_private::Listener &listener);
+
+ ~ProcessWindows();
+
+ size_t GetSTDOUT(char *buf, size_t buf_size, lldb_private::Error &error) override;
+ size_t GetSTDERR(char *buf, size_t buf_size, lldb_private::Error &error) override;
+ size_t PutSTDIN(const char *buf, size_t buf_size, lldb_private::Error &error) override;
+
+ lldb::addr_t GetImageInfoAddress() override;
+
+protected:
+ // These decode the page protection bits.
+ static bool
+ IsPageReadable(uint32_t protect);
+
+ static bool
+ IsPageWritable(uint32_t protect);
+
+ static bool
+ IsPageExecutable(uint32_t protect);
+};
+
+}
+
+#endif // liblldb_Plugins_Process_Windows_Common_ProcessWindows_H_