|
LLDB mainline
|
#include <Memory.h>
Public Member Functions | |
| MemoryCache (Process &process) | |
| ~MemoryCache () | |
| void | Clear (bool clear_invalid_ranges=false) |
| void | Flush (lldb::addr_t addr, size_t size) |
| size_t | Read (lldb::addr_t addr, void *dst, size_t dst_len, Status &error) |
| uint32_t | GetMemoryCacheLineSize () const |
| void | AddInvalidRange (lldb::addr_t base_addr, lldb::addr_t byte_size) |
| bool | RemoveInvalidRange (lldb::addr_t base_addr, lldb::addr_t byte_size) |
| void | AddL1CacheData (lldb::addr_t addr, const void *src, size_t src_len) |
| void | AddL1CacheData (lldb::addr_t addr, const lldb::DataBufferSP &data_buffer_sp) |
Protected Types | |
| typedef std::map< lldb::addr_t, lldb::DataBufferSP > | BlockMap |
| typedef RangeVector< lldb::addr_t, lldb::addr_t, 4 > | InvalidRanges |
| typedef Range< lldb::addr_t, lldb::addr_t > | AddrRange |
Protected Attributes | |
| std::recursive_mutex | m_mutex |
| BlockMap | m_L1_cache |
| BlockMap | m_L2_cache |
| InvalidRanges | m_invalid_ranges |
| Process & | m_process |
| uint32_t | m_L2_cache_line_byte_size |
Private Member Functions | |
| MemoryCache (const MemoryCache &)=delete | |
| const MemoryCache & | operator= (const MemoryCache &)=delete |
| lldb::DataBufferSP | GetL2CacheLine (lldb::addr_t addr, Status &error) |
|
protected |
|
protected |
|
protected |
| MemoryCache::MemoryCache | ( | Process & | process | ) |
Definition at line 24 of file Memory.cpp.
References GetMemoryCacheLineSize(), m_invalid_ranges, m_L1_cache, m_L2_cache, m_L2_cache_line_byte_size, m_mutex, and m_process.
Referenced by MemoryCache(), and operator=().
|
default |
References error().
|
privatedelete |
References MemoryCache().
| void MemoryCache::AddInvalidRange | ( | lldb::addr_t | base_addr, |
| lldb::addr_t | byte_size ) |
Definition at line 101 of file Memory.cpp.
References m_invalid_ranges, and m_mutex.
| void MemoryCache::AddL1CacheData | ( | lldb::addr_t | addr, |
| const lldb::DataBufferSP & | data_buffer_sp ) |
Definition at line 47 of file Memory.cpp.
References m_L1_cache, and m_mutex.
| void MemoryCache::AddL1CacheData | ( | lldb::addr_t | addr, |
| const void * | src, | ||
| size_t | src_len ) |
Definition at line 41 of file Memory.cpp.
References AddL1CacheData().
Referenced by AddL1CacheData(), and Read().
| void MemoryCache::Clear | ( | bool | clear_invalid_ranges = false | ) |
Definition at line 32 of file Memory.cpp.
References m_invalid_ranges, m_L1_cache, m_L2_cache, m_L2_cache_line_byte_size, m_mutex, and m_process.
| void MemoryCache::Flush | ( | lldb::addr_t | addr, |
| size_t | size ) |
Definition at line 53 of file Memory.cpp.
References lldb_private::Range< B, S >::DoesIntersect(), m_L1_cache, m_L2_cache, m_L2_cache_line_byte_size, m_mutex, and UINT64_MAX.
|
private |
Definition at line 126 of file Memory.cpp.
References error(), m_L2_cache, m_L2_cache_line_byte_size, m_mutex, and m_process.
Referenced by Read().
|
inline |
Definition at line 34 of file Memory.h.
References m_L2_cache_line_byte_size.
Referenced by MemoryCache().
|
privatedelete |
References error(), and MemoryCache().
| size_t MemoryCache::Read | ( | lldb::addr_t | addr, |
| void * | dst, | ||
| size_t | dst_len, | ||
| Status & | error ) |
Definition at line 154 of file Memory.cpp.
References AddL1CacheData(), lldb_private::Range< B, S >::Contains(), error(), lldb_private::Status::FromErrorStringWithFormat(), GetL2CacheLine(), lldb_private::Range< B, S >::GetRangeBase(), m_invalid_ranges, m_L1_cache, m_L2_cache_line_byte_size, m_mutex, and m_process.
| bool MemoryCache::RemoveInvalidRange | ( | lldb::addr_t | base_addr, |
| lldb::addr_t | byte_size ) |
Definition at line 111 of file Memory.cpp.
References lldb_private::Range< B, S >::GetByteSize(), lldb_private::Range< B, S >::GetRangeBase(), m_invalid_ranges, m_mutex, and UINT32_MAX.
|
protected |
Definition at line 57 of file Memory.h.
Referenced by AddInvalidRange(), Clear(), MemoryCache(), Read(), and RemoveInvalidRange().
|
protected |
Definition at line 52 of file Memory.h.
Referenced by AddL1CacheData(), Clear(), Flush(), MemoryCache(), and Read().
|
protected |
Definition at line 55 of file Memory.h.
Referenced by Clear(), Flush(), GetL2CacheLine(), and MemoryCache().
|
protected |
Definition at line 59 of file Memory.h.
Referenced by Clear(), Flush(), GetL2CacheLine(), GetMemoryCacheLineSize(), MemoryCache(), and Read().
|
protected |
Definition at line 51 of file Memory.h.
Referenced by AddInvalidRange(), AddL1CacheData(), Clear(), Flush(), GetL2CacheLine(), MemoryCache(), Read(), and RemoveInvalidRange().
|
protected |
Definition at line 58 of file Memory.h.
Referenced by Clear(), GetL2CacheLine(), MemoryCache(), and Read().