16#ifndef LIEF_ELF_NOTE_ABI_H
17#define LIEF_ELF_NOTE_ABI_H
46 static constexpr size_t abi_size =
sizeof(uint32_t);
54 std::unique_ptr<Note>
clone()
const override {
55 return std::unique_ptr<Note>(
new NoteAbi(*
this));
67 void dump(std::ostream& os)
const override;
77 return sizeof(uint32_t) + 3 *
sizeof(uint32_t);
Class that wraps the NT_GNU_ABI_TAG note.
Definition NoteAbi.hpp:30
static constexpr size_t version_size
Definition NoteAbi.hpp:49
static constexpr size_t version_offset
Definition NoteAbi.hpp:48
void version(const version_t &version)
std::unique_ptr< Note > clone() const override
Clone the current note and keep its polymorphic type.
Definition NoteAbi.hpp:54
void accept(Visitor &visitor) const override
~NoteAbi() override=default
void dump(std::ostream &os) const override
result< ABI > abi() const
Return the ABI or an error if it can't be parsed.
std::array< uint32_t, 3 > version_t
Version type: (Major, Minor, Patch).
Definition NoteAbi.hpp:43
static constexpr uint8_t description_size()
Definition NoteAbi.hpp:76
friend std::ostream & operator<<(std::ostream &os, const NoteAbi ¬e)
Definition NoteAbi.hpp:83
static bool classof(const Note *note)
Definition NoteAbi.hpp:71
static constexpr size_t abi_offset
Definition NoteAbi.hpp:45
result< version_t > version() const
Return the version or an error if it can't be parsed.
ABI
ABI recognized by this note.
Definition NoteAbi.hpp:33
@ FREEBSD
Definition NoteAbi.hpp:37
@ NETBSD
Definition NoteAbi.hpp:38
@ NACL
Definition NoteAbi.hpp:40
@ GNU
Definition NoteAbi.hpp:35
@ SYLLABLE
Definition NoteAbi.hpp:39
@ SOLARIS2
Definition NoteAbi.hpp:36
@ LINUX
Definition NoteAbi.hpp:34
Note(const Note ©)=default
static constexpr size_t abi_size
Definition NoteAbi.hpp:46
@ GNU_ABI_TAG
Match NT_GNU_ABI_TAG: Operating system (OS) ABI information.
Definition Note.hpp:54
TYPE type() const
Return the type of the note. This type does not match the NT_ type value. For accessing the original ...
Definition Note.hpp:195
Note(const Note ©)=default
Definition Visitor.hpp:210
Namespace related to the LIEF's ELF module.
Definition Abstract/Header.hpp:28
const char * to_string(DynamicEntry::TAG e)
LIEF namespace.
Definition Abstract/Binary.hpp:40
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
#define LIEF_API
Definition visibility.h:41