16#ifndef LIEF_MACHO_BINDING_INFO_H
17#define LIEF_MACHO_BINDING_INFO_H
20#include "LIEF/visibility.h"
21#include "LIEF/types.hpp"
22#include "LIEF/Object.hpp"
24#include "LIEF/MachO/enums.hpp"
83 virtual void address(uint64_t addr);
85 int32_t library_ordinal()
const;
86 void library_ordinal(int32_t ordinal);
90 void addend(int64_t addend);
92 bool is_weak_import()
const;
93 void set_weak_import(
bool val =
true);
101 void accept(
Visitor& visitor)
const override;
103 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const BindingInfo& binding_info);
107 Symbol* symbol_ =
nullptr;
108 int32_t library_ordinal_ = 0;
110 bool is_weak_import_ =
false;
112 uint64_t address_ = 0;
Class used to parse a single binary (i.e. non-FAT)
Definition BinaryParser.hpp:73
Class that provides an interface over a binding operation.
Definition BindingInfo.hpp:40
bool has_symbol() const
Check if a MachO::Symbol is associated with the BindingInfo.
bool has_segment() const
Check if a MachO::SegmentCommand is associated with this binding.
const SegmentCommand * segment() const
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a Segment...
bool has_library() const
Check if a MachO::DylibCommand is tied with the BindingInfo.
const Symbol * symbol() const
MachO::Symbol associated with the BindingInfo or a nullptr if not present.
TYPES
Definition BindingInfo.hpp:45
virtual TYPES type() const =0
The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINE...
virtual uint64_t address() const
Address of the binding.
const DylibCommand * library() const
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
int64_t addend() const
Value added to the segment's virtual address when bound.
Class which represents a library dependency.
Definition DylibCommand.hpp:35
Class which represents a LOAD_COMMAND_TYPES::LC_SEGMENT / LOAD_COMMAND_TYPES::LC_SEGMENT_64 command.
Definition SegmentCommand.hpp:48
Class that represents a Symbol in a Mach-O file.
Definition MachO/Symbol.hpp:49
Definition Visitor.hpp:219
LIEF namespace.
Definition Abstract/Binary.hpp:32