LLDB mainline
Public Types | Public Member Functions | List of all members
lldb_private::MemoryTagManager Class Referenceabstract

#include <MemoryTagManager.h>

Inheritance diagram for lldb_private::MemoryTagManager:
Inheritance graph
[legend]

Public Types

typedef Range< lldb::addr_t, lldb::addr_tTagRange
 
typedef std::function< size_t(lldb::offset_t, size_t, void *)> CoreReaderFn
 

Public Member Functions

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< TagRangeMakeTaggedRange (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_tUnpackTagsFromCoreFileSegment (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
 

Detailed Description

Definition at line 28 of file MemoryTagManager.h.

Member Typedef Documentation

◆ CoreReaderFn

typedef std::function<size_t(lldb::offset_t, size_t, void *)> lldb_private::MemoryTagManager::CoreReaderFn

Definition at line 125 of file MemoryTagManager.h.

◆ TagRange

Definition at line 30 of file MemoryTagManager.h.

Constructor & Destructor Documentation

◆ ~MemoryTagManager()

virtual lldb_private::MemoryTagManager::~MemoryTagManager ( )
virtualdefault

Member Function Documentation

◆ AddressDiff()

virtual ptrdiff_t lldb_private::MemoryTagManager::AddressDiff ( lldb::addr_t  addr1,
lldb::addr_t  addr2 
) const
pure virtual

◆ ExpandToGranule()

virtual TagRange lldb_private::MemoryTagManager::ExpandToGranule ( TagRange  range) const
pure virtual

◆ GetAllocationTagType()

virtual int32_t lldb_private::MemoryTagManager::GetAllocationTagType ( ) const
pure virtual

◆ GetGranuleSize()

virtual lldb::addr_t lldb_private::MemoryTagManager::GetGranuleSize ( ) const
pure virtual

◆ GetLogicalTag()

virtual lldb::addr_t lldb_private::MemoryTagManager::GetLogicalTag ( lldb::addr_t  addr) const
pure virtual

◆ GetTagSizeInBytes()

virtual size_t lldb_private::MemoryTagManager::GetTagSizeInBytes ( ) const
pure virtual

◆ MakeTaggedRange()

virtual llvm::Expected< TagRange > lldb_private::MemoryTagManager::MakeTaggedRange ( lldb::addr_t  addr,
lldb::addr_t  end_addr,
const lldb_private::MemoryRegionInfos memory_regions 
) const
pure virtual

◆ MakeTaggedRanges()

virtual llvm::Expected< std::vector< TagRange > > lldb_private::MemoryTagManager::MakeTaggedRanges ( lldb::addr_t  addr,
lldb::addr_t  end_addr,
const lldb_private::MemoryRegionInfos memory_regions 
) const
pure virtual

◆ PackTags()

virtual llvm::Expected< std::vector< uint8_t > > lldb_private::MemoryTagManager::PackTags ( const std::vector< lldb::addr_t > &  tags) const
pure virtual

◆ RemoveTagBits()

virtual lldb::addr_t lldb_private::MemoryTagManager::RemoveTagBits ( lldb::addr_t  addr) const
pure virtual

◆ RepeatTagsForRange()

virtual llvm::Expected< std::vector< lldb::addr_t > > lldb_private::MemoryTagManager::RepeatTagsForRange ( const std::vector< lldb::addr_t > &  tags,
TagRange  range 
) const
pure virtual

◆ UnpackTagsData()

virtual llvm::Expected< std::vector< lldb::addr_t > > lldb_private::MemoryTagManager::UnpackTagsData ( const std::vector< uint8_t > &  tags,
size_t  granules = 0 
) const
pure virtual

◆ UnpackTagsFromCoreFileSegment()

virtual std::vector< lldb::addr_t > lldb_private::MemoryTagManager::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
pure virtual

The documentation for this class was generated from the following file: