LLDB  mainline
Public Types | Public Member Functions | List of all members
lldb_private::MemoryTagManagerAArch64MTE Class Reference

#include <MemoryTagManagerAArch64MTE.h>

Inheritance diagram for lldb_private::MemoryTagManagerAArch64MTE:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::MemoryTagManagerAArch64MTE:
Collaboration graph
[legend]

Public Types

enum  MTETagTypes { eMTE_logical = 0, eMTE_allocation = 1 }
 
- Public Types inherited from lldb_private::MemoryTagManager
typedef Range< lldb::addr_t, lldb::addr_tTagRange
 

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 RemoveNonAddressBits (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< TagRangeMakeTaggedRange (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
 
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 ~MemoryTagManager ()
 

Detailed Description

Definition at line 16 of file MemoryTagManagerAArch64MTE.h.

Member Enumeration Documentation

◆ MTETagTypes

Enumerator
eMTE_logical 
eMTE_allocation 

Definition at line 20 of file MemoryTagManagerAArch64MTE.h.

Member Function Documentation

◆ AddressDiff()

ptrdiff_t MemoryTagManagerAArch64MTE::AddressDiff ( lldb::addr_t  addr1,
lldb::addr_t  addr2 
) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 31 of file MemoryTagManagerAArch64MTE.cpp.

References RemoveNonAddressBits().

Referenced by MakeTaggedRange().

◆ ExpandToGranule()

MemoryTagManagerAArch64MTE::TagRange MemoryTagManagerAArch64MTE::ExpandToGranule ( TagRange  range) const
overridevirtual

◆ GetAllocationTagType()

int32_t MemoryTagManagerAArch64MTE::GetAllocationTagType ( ) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 40 of file MemoryTagManagerAArch64MTE.cpp.

References eMTE_allocation.

◆ GetGranuleSize()

lldb::addr_t MemoryTagManagerAArch64MTE::GetGranuleSize ( ) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 36 of file MemoryTagManagerAArch64MTE.cpp.

References MTE_GRANULE_SIZE.

Referenced by ExpandToGranule(), and RepeatTagsForRange().

◆ GetLogicalTag()

lldb::addr_t MemoryTagManagerAArch64MTE::GetLogicalTag ( lldb::addr_t  addr) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 18 of file MemoryTagManagerAArch64MTE.cpp.

References MTE_START_BIT, and MTE_TAG_MAX.

◆ GetTagSizeInBytes()

size_t MemoryTagManagerAArch64MTE::GetTagSizeInBytes ( ) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 44 of file MemoryTagManagerAArch64MTE.cpp.

Referenced by PackTags(), and UnpackTagsData().

◆ MakeTaggedRange()

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

◆ PackTags()

llvm::Expected< std::vector< uint8_t > > MemoryTagManagerAArch64MTE::PackTags ( const std::vector< lldb::addr_t > &  tags) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 159 of file MemoryTagManagerAArch64MTE.cpp.

References GetTagSizeInBytes(), and MTE_TAG_MAX.

◆ RemoveNonAddressBits()

lldb::addr_t MemoryTagManagerAArch64MTE::RemoveNonAddressBits ( lldb::addr_t  addr) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 23 of file MemoryTagManagerAArch64MTE.cpp.

References MTE_START_BIT.

Referenced by AddressDiff(), and MakeTaggedRange().

◆ RepeatTagsForRange()

llvm::Expected< std::vector< lldb::addr_t > > MemoryTagManagerAArch64MTE::RepeatTagsForRange ( const std::vector< lldb::addr_t > &  tags,
TagRange  range 
) const
overridevirtual

◆ UnpackTagsData()

llvm::Expected< std::vector< lldb::addr_t > > MemoryTagManagerAArch64MTE::UnpackTagsData ( const std::vector< uint8_t > &  tags,
size_t  granules = 0 
) const
overridevirtual

Implements lldb_private::MemoryTagManager.

Definition at line 127 of file MemoryTagManagerAArch64MTE.cpp.

References GetTagSizeInBytes(), and MTE_TAG_MAX.


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