16#ifndef LIEF_MACHO_BINDING_INFO_H
17#define LIEF_MACHO_BINDING_INFO_H
21#include "LIEF/visibility.h"
22#include "LIEF/Object.hpp"
57 return segment_ !=
nullptr;
71 return library_ !=
nullptr;
85 return symbol_ !=
nullptr;
102 virtual void address(uint64_t addr) {
106 int32_t library_ordinal()
const {
107 return library_ordinal_;
110 void library_ordinal(int32_t ordinal) {
111 library_ordinal_ = ordinal;
119 void addend(int64_t addend) {
123 bool is_weak_import()
const {
124 return is_weak_import_;
127 void set_weak_import(
bool val =
true) {
128 is_weak_import_ = val;
137 void accept(
Visitor& visitor)
const override;
139 LIEF_API
friend std::ostream& operator<<(std::ostream& os,
const BindingInfo& binding_info);
143 Symbol* symbol_ =
nullptr;
144 int32_t library_ordinal_ = 0;
146 bool is_weak_import_ =
false;
148 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:38
bool has_symbol() const
Check if a MachO::Symbol is associated with the BindingInfo.
Definition BindingInfo.hpp:84
bool has_segment() const
Check if a MachO::SegmentCommand is associated with this binding.
Definition BindingInfo.hpp:56
const SegmentCommand * segment() const
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a Segment...
Definition BindingInfo.hpp:62
bool has_library() const
Check if a MachO::DylibCommand is tied with the BindingInfo.
Definition BindingInfo.hpp:70
const Symbol * symbol() const
MachO::Symbol associated with the BindingInfo or a nullptr if not present.
Definition BindingInfo.hpp:90
TYPES
Definition BindingInfo.hpp:43
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.
Definition BindingInfo.hpp:98
const DylibCommand * library() const
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
Definition BindingInfo.hpp:76
int64_t addend() const
Value added to the segment's virtual address when bound.
Definition BindingInfo.hpp:115
Class which represents a library dependency.
Definition DylibCommand.hpp:34
Class which represents a LoadCommand::TYPE::SEGMENT / LoadCommand::TYPE::SEGMENT_64 command.
Definition SegmentCommand.hpp:48
Class that represents a Symbol in a Mach-O file.
Definition MachO/Symbol.hpp:47
Definition Visitor.hpp:219
LIEF namespace.
Definition Abstract/Binary.hpp:32