16#ifndef LIEF_ELF_NOTE_ABI_H
17#define LIEF_ELF_NOTE_ABI_H
45 static constexpr size_t abi_offset = 0;
46 static constexpr size_t abi_size =
sizeof(uint32_t);
48 static constexpr size_t version_offset = abi_size;
49 static constexpr size_t version_size = 3 *
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;
72 return note->
type() == Note::TYPE::GNU_ABI_TAG;
77 return sizeof(uint32_t) + 3 *
sizeof(uint32_t);
Class that wraps the NT_GNU_ABI_TAG note.
Definition NoteAbi.hpp:30
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
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
Class which represents an ELF note. This class can be instantiated using the static Note::create func...
Definition Note.hpp:39
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
Definition Visitor.hpp:224
const char * to_string(DynamicEntry::TAG e)
LIEF namespace.
Definition Abstract/Binary.hpp:32
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:74
#define LIEF_API
Definition visibility.h:41