diff options
Diffstat (limited to 'include/lldb/Target/MemoryRegionInfo.h')
-rw-r--r-- | include/lldb/Target/MemoryRegionInfo.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/include/lldb/Target/MemoryRegionInfo.h b/include/lldb/Target/MemoryRegionInfo.h new file mode 100644 index 000000000000..0726ad15e876 --- /dev/null +++ b/include/lldb/Target/MemoryRegionInfo.h @@ -0,0 +1,104 @@ +//===-- MemoryRegionInfo.h ---------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef lldb_MemoryRegionInfo_h +#define lldb_MemoryRegionInfo_h + +#include "lldb/Core/RangeMap.h" +#include "lldb/Utility/Range.h" + +namespace lldb_private +{ + class MemoryRegionInfo + { + public: + typedef Range<lldb::addr_t, lldb::addr_t> RangeType; + + enum OptionalBool { + eDontKnow = -1, + eNo = 0, + eYes = 1 + }; + + MemoryRegionInfo () : + m_range (), + m_read (eDontKnow), + m_write (eDontKnow), + m_execute (eDontKnow) + { + } + + ~MemoryRegionInfo () + { + } + + RangeType & + GetRange() + { + return m_range; + } + + void + Clear() + { + m_range.Clear(); + m_read = m_write = m_execute = eDontKnow; + } + + const RangeType & + GetRange() const + { + return m_range; + } + + OptionalBool + GetReadable () const + { + return m_read; + } + + OptionalBool + GetWritable () const + { + return m_write; + } + + OptionalBool + GetExecutable () const + { + return m_execute; + } + + void + SetReadable (OptionalBool val) + { + m_read = val; + } + + void + SetWritable (OptionalBool val) + { + m_write = val; + } + + void + SetExecutable (OptionalBool val) + { + m_execute = val; + } + + protected: + RangeType m_range; + OptionalBool m_read; + OptionalBool m_write; + OptionalBool m_execute; + }; +} + +#endif // #ifndef lldb_MemoryRegionInfo_h |