|
LLDB mainline
|
#include <RegisterType.h>
Public Types | |
| enum | RegisterTypeKind { eRegisterTypeKindFlags , eRegisterTypeKindEnum , eRegisterTypeKindBuiltin , eRegisterTypeKindVector } |
Public Member Functions | |
| RegisterTypeKind | getKind () const |
| RegisterType (RegisterTypeKind kind, std::string id) | |
| RegisterType (const RegisterType &)=delete | |
| RegisterType & | operator= (const RegisterType &)=delete |
| RegisterType (RegisterType &&)=delete | |
| RegisterType & | operator= (RegisterType &&)=delete |
| virtual void | ToXML (Stream &strm, std::unordered_set< std::string > &previously_emitted, const RegisterType *user=nullptr) const |
| Output XML that describes this type, to be inserted into a target XML file. | |
| virtual | ~RegisterType ()=default |
| virtual void | ToXMLElement (Stream &strm, const RegisterType *user=nullptr) const =0 |
| Output the register type as an XML element. | |
| const std::string & | GetID () const |
| uint64_t | GetUID () const |
| Return an identifier unique among all RegisterType instances constructed during the lifetime of the LLDB host process. | |
| virtual std::optional< uint64_t > | GetByteSize () const |
| Return this type's fixed size in bytes, if it has one. | |
| void | SetDependencies (std::vector< const RegisterType * > dependencies) |
Static Public Member Functions | |
| static void | PrintXMLAttributeValue (Stream &strm, llvm::StringRef value) |
| Print a string escaped for use as an XML attribute value. | |
Private Attributes | |
| const RegisterTypeKind | m_kind |
| const std::string | m_id |
| const uint64_t | m_uid |
| std::vector< const RegisterType * > | m_dependencies |
Definition at line 26 of file RegisterType.h.
| Enumerator | |
|---|---|
| eRegisterTypeKindFlags | |
| eRegisterTypeKindEnum | |
| eRegisterTypeKindBuiltin | |
| eRegisterTypeKindVector | |
Definition at line 28 of file RegisterType.h.
| RegisterType::RegisterType | ( | RegisterTypeKind | kind, |
| std::string | id ) |
Definition at line 26 of file RegisterType.cpp.
References g_next_register_type_uid, m_id, m_kind, and m_uid.
Referenced by lldb_private::RegisterTypeBuiltin::classof(), lldb_private::RegisterTypeEnum::classof(), lldb_private::RegisterTypeFlags::classof(), lldb_private::RegisterTypeVector::classof(), lldb_private::RegisterTypeVector::GetElementType(), operator=(), operator=(), RegisterType(), RegisterType(), lldb_private::RegisterTypeBuiltin::RegisterTypeBuiltin(), lldb_private::RegisterTypeEnum::RegisterTypeEnum(), lldb_private::RegisterTypeVector::RegisterTypeVector(), ToXML(), lldb_private::RegisterTypeBuiltin::ToXML(), ToXMLElement(), lldb_private::RegisterTypeBuiltin::ToXMLElement(), lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
delete |
References RegisterType().
|
delete |
References RegisterType().
|
virtualdefault |
|
inlinevirtual |
Return this type's fixed size in bytes, if it has one.
No byte size means it depends on the target.
Reimplemented in lldb_private::RegisterTypeBuiltin, and lldb_private::RegisterTypeVector.
Definition at line 70 of file RegisterType.h.
|
inline |
Definition at line 61 of file RegisterType.h.
References m_id.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildBuiltinType(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml(), lldb_private::RegisterTypeEnum::DumpToLog(), lldb_private::RegisterTypeVector::DumpToLog(), ToXML(), lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
inline |
Definition at line 35 of file RegisterType.h.
References m_kind.
Referenced by lldb_private::RegisterTypeBuiltin::classof(), lldb_private::RegisterTypeEnum::classof(), lldb_private::RegisterTypeFlags::classof(), lldb_private::RegisterTypeVector::classof(), and lldb_private::RegisterTypeBuilderClang::GetRegisterType().
|
inline |
Return an identifier unique among all RegisterType instances constructed during the lifetime of the LLDB host process.
The identifier is not reused after this instance is destroyed.
Definition at line 66 of file RegisterType.h.
References m_uid.
Referenced by lldb_private::RegisterTypeBuilderClang::BuildBuiltinType(), lldb_private::RegisterTypeBuilderClang::BuildEnumType(), lldb_private::RegisterTypeBuilderClang::BuildFlagsType(), and lldb_private::RegisterTypeBuilderClang::GetExistingCompilerType().
|
delete |
References RegisterType().
|
delete |
References RegisterType().
|
static |
Print a string escaped for use as an XML attribute value.
Definition at line 45 of file RegisterType.cpp.
Referenced by lldb_private::RegisterTypeEnum::ToXMLElement(), lldb_private::RegisterTypeFlags::Field::ToXMLElement(), lldb_private::RegisterTypeFlags::ToXMLElement(), and lldb_private::RegisterTypeVector::ToXMLElement().
|
inline |
Definition at line 72 of file RegisterType.h.
References m_dependencies.
Referenced by lldb_private::RegisterTypeVector::RegisterTypeVector().
|
virtual |
Output XML that describes this type, to be inserted into a target XML file.
Reserved characters like "<" are replaced with their XML safe equivalents like "<".
Reimplemented in lldb_private::RegisterTypeBuiltin.
Definition at line 30 of file RegisterType.cpp.
References GetID(), m_dependencies, RegisterType(), and ToXMLElement().
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::BuildTargetXml().
|
pure virtual |
Output the register type as an XML element.
That is, "<foo ...>" until the closing </foo>, including any child types in between. For example the flags in a register flag set.
Implemented in lldb_private::RegisterTypeBuiltin, lldb_private::RegisterTypeEnum, lldb_private::RegisterTypeFlags, and lldb_private::RegisterTypeVector.
References RegisterType().
Referenced by ToXML().
|
private |
Definition at line 80 of file RegisterType.h.
Referenced by SetDependencies(), and ToXML().
|
private |
Definition at line 78 of file RegisterType.h.
Referenced by GetID(), and RegisterType().
|
private |
Definition at line 77 of file RegisterType.h.
Referenced by getKind(), and RegisterType().
|
private |
Definition at line 79 of file RegisterType.h.
Referenced by GetUID(), and RegisterType().