LLDB mainline
|
#include <MemoryTagManagerAArch64MTE.h>
Public Types | |
enum | MTETagTypes { eMTE_logical = 0 , eMTE_allocation = 1 } |
Public Types inherited from lldb_private::MemoryTagManager | |
typedef Range< lldb::addr_t, lldb::addr_t > | TagRange |
typedef std::function< size_t(lldb::offset_t, size_t, void *)> | CoreReaderFn |
Public Member Functions | |
lldb::addr_t | GetGranuleSize () const override |
int32_t | GetAllocationTagType () const override |
size_t | GetTagSizeInBytes () const override |
lldb::addr_t | GetLogicalTag (lldb::addr_t addr) const override |
lldb::addr_t | RemoveTagBits (lldb::addr_t addr) const override |
ptrdiff_t | AddressDiff (lldb::addr_t addr1, lldb::addr_t addr2) const override |
TagRange | ExpandToGranule (TagRange range) const override |
llvm::Expected< TagRange > | MakeTaggedRange (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const override |
llvm::Expected< std::vector< TagRange > > | MakeTaggedRanges (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const override |
llvm::Expected< std::vector< lldb::addr_t > > | UnpackTagsData (const std::vector< uint8_t > &tags, size_t granules=0) const override |
std::vector< lldb::addr_t > | UnpackTagsFromCoreFileSegment (CoreReaderFn reader, lldb::addr_t tag_segment_virtual_address, lldb::addr_t tag_segment_data_address, lldb::addr_t addr, size_t len) const override |
llvm::Expected< std::vector< uint8_t > > | PackTags (const std::vector< lldb::addr_t > &tags) const override |
llvm::Expected< std::vector< lldb::addr_t > > | RepeatTagsForRange (const std::vector< lldb::addr_t > &tags, TagRange range) const override |
Public Member Functions inherited from lldb_private::MemoryTagManager | |
virtual lldb::addr_t | GetLogicalTag (lldb::addr_t addr) const =0 |
virtual lldb::addr_t | RemoveTagBits (lldb::addr_t addr) const =0 |
virtual ptrdiff_t | AddressDiff (lldb::addr_t addr1, lldb::addr_t addr2) const =0 |
virtual lldb::addr_t | GetGranuleSize () const =0 |
virtual TagRange | ExpandToGranule (TagRange range) const =0 |
virtual llvm::Expected< TagRange > | MakeTaggedRange (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const =0 |
virtual llvm::Expected< std::vector< TagRange > > | MakeTaggedRanges (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const =0 |
virtual int32_t | GetAllocationTagType () const =0 |
virtual size_t | GetTagSizeInBytes () const =0 |
virtual llvm::Expected< std::vector< lldb::addr_t > > | UnpackTagsData (const std::vector< uint8_t > &tags, size_t granules=0) const =0 |
virtual std::vector< lldb::addr_t > | UnpackTagsFromCoreFileSegment (CoreReaderFn reader, lldb::addr_t tag_segment_virtual_address, lldb::addr_t tag_segment_data_address, lldb::addr_t addr, size_t len) const =0 |
virtual llvm::Expected< std::vector< uint8_t > > | PackTags (const std::vector< lldb::addr_t > &tags) const =0 |
virtual llvm::Expected< std::vector< lldb::addr_t > > | RepeatTagsForRange (const std::vector< lldb::addr_t > &tags, TagRange range) const =0 |
virtual | ~MemoryTagManager ()=default |
Definition at line 16 of file MemoryTagManagerAArch64MTE.h.
Enumerator | |
---|---|
eMTE_logical | |
eMTE_allocation |
Definition at line 20 of file MemoryTagManagerAArch64MTE.h.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 33 of file MemoryTagManagerAArch64MTE.cpp.
References RemoveTagBits().
Referenced by MakeTaggedRange(), and MakeTaggedRanges().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 49 of file MemoryTagManagerAArch64MTE.cpp.
References lldb_private::Range< B, S >::GetByteSize(), GetGranuleSize(), lldb_private::Range< B, S >::GetRangeBase(), and lldb_private::Range< B, S >::IsValid().
Referenced by MakeTaggedRange(), and MakeTaggedRanges().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 42 of file MemoryTagManagerAArch64MTE.cpp.
References eMTE_allocation.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 38 of file MemoryTagManagerAArch64MTE.cpp.
References MTE_GRANULE_SIZE.
Referenced by ExpandToGranule(), RepeatTagsForRange(), and UnpackTagsFromCoreFileSegment().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 20 of file MemoryTagManagerAArch64MTE.cpp.
References MTE_START_BIT, and MTE_TAG_MAX.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 46 of file MemoryTagManagerAArch64MTE.cpp.
Referenced by PackTags(), and UnpackTagsData().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 81 of file MemoryTagManagerAArch64MTE.cpp.
References AddressDiff(), ExpandToGranule(), lldb_private::MemoryRegionInfo::eYes, lldb_private::Range< B, S >::GetRangeBase(), lldb_private::Range< B, S >::GetRangeEnd(), lldb_private::Range< B, S >::IsValid(), MakeInvalidRangeErr(), RemoveTagBits(), lldb_private::Range< B, S >::SetRangeBase(), and lldb_private::Range< B, S >::SetRangeEnd().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 133 of file MemoryTagManagerAArch64MTE.cpp.
References AddressDiff(), ExpandToGranule(), lldb_private::Range< B, S >::GetRangeBase(), lldb_private::Range< B, S >::GetRangeEnd(), lldb_private::Range< B, S >::IsValid(), MakeInvalidRangeErr(), RemoveTagBits(), lldb_private::Range< B, S >::SetRangeBase(), lldb_private::Range< B, S >::SetRangeEnd(), and UNUSED_IF_ASSERT_DISABLED.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 315 of file MemoryTagManagerAArch64MTE.cpp.
References GetTagSizeInBytes(), and MTE_TAG_MAX.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 25 of file MemoryTagManagerAArch64MTE.cpp.
References MTE_START_BIT.
Referenced by AddressDiff(), MakeTaggedRange(), and MakeTaggedRanges().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 334 of file MemoryTagManagerAArch64MTE.cpp.
References lldb_private::Range< B, S >::GetByteSize(), GetGranuleSize(), and lldb_private::Range< B, S >::IsValid().
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 218 of file MemoryTagManagerAArch64MTE.cpp.
References GetTagSizeInBytes(), and MTE_TAG_MAX.
|
overridevirtual |
Implements lldb_private::MemoryTagManager.
Definition at line 251 of file MemoryTagManagerAArch64MTE.cpp.
References GetGranuleSize(), and UNUSED_IF_ASSERT_DISABLED.