LIEF: Library to Instrument Executable Formats
Version 1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
lief-install
x86_64
static
include
LIEF
MachO
UnknownCommand.hpp
Go to the documentation of this file.
1
/* Copyright 2024 - 2026 R. Thomas
2
*
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
#ifndef LIEF_MACHO_UNKNOWN_COMMAND_H
16
#define LIEF_MACHO_UNKNOWN_COMMAND_H
17
#include <ostream>
18
19
#include "
LIEF/visibility.h
"
20
21
#include "
LIEF/MachO/LoadCommand.hpp
"
22
23
namespace
LIEF
{
24
namespace
MachO
{
25
26
namespace
details
{
27
struct
load_command;
28
}
29
30
32
class
LIEF_API
UnknownCommand
:
public
LoadCommand
{
33
34
public
:
35
UnknownCommand
() =
delete
;
36
UnknownCommand
(
const
details::load_command&
command
) :
37
LoadCommand
(
command
),
38
original_command_(static_cast<uint64_t>(command_))
39
{
40
command_ =
LoadCommand::TYPE::LIEF_UNKNOWN
;
41
}
42
43
UnknownCommand
&
operator=
(
const
UnknownCommand
& copy) =
default
;
44
UnknownCommand
(
const
UnknownCommand
& copy) =
default
;
45
46
std::unique_ptr<LoadCommand>
clone
()
const override
{
47
return
std::unique_ptr<UnknownCommand>(
new
UnknownCommand
(*
this
));
48
}
49
50
~UnknownCommand
()
override
=
default
;
51
53
uint64_t
original_command
()
const
{
54
return
original_command_;
55
}
56
57
void
accept
(
Visitor
& visitor)
const override
;
58
59
std::ostream&
print
(std::ostream& os)
const override
;
60
61
static
bool
classof
(
const
LoadCommand
* cmd) {
62
return
cmd->
command
() ==
LoadCommand::TYPE::LIEF_UNKNOWN
;
63
}
64
65
private
:
66
uint64_t original_command_ = 0;
67
};
68
69
}
70
}
71
#endif
LoadCommand.hpp
LIEF::MachO::LoadCommand::LoadCommand
LoadCommand()=default
LIEF::MachO::LoadCommand::command
LoadCommand::TYPE command() const
Command type.
Definition
LoadCommand.hpp:128
LIEF::MachO::LoadCommand::TYPE::LIEF_UNKNOWN
@ LIEF_UNKNOWN
Definition
LoadCommand.hpp:105
LIEF::MachO::UnknownCommand::UnknownCommand
UnknownCommand(const details::load_command &command)
Definition
UnknownCommand.hpp:36
LIEF::MachO::UnknownCommand::accept
void accept(Visitor &visitor) const override
LIEF::MachO::UnknownCommand::UnknownCommand
UnknownCommand()=delete
LIEF::MachO::UnknownCommand::original_command
uint64_t original_command() const
The original LC_ int that is not supported by LIEF.
Definition
UnknownCommand.hpp:53
LIEF::MachO::UnknownCommand::operator=
UnknownCommand & operator=(const UnknownCommand ©)=default
LIEF::MachO::UnknownCommand::clone
std::unique_ptr< LoadCommand > clone() const override
Definition
UnknownCommand.hpp:46
LIEF::MachO::UnknownCommand::print
std::ostream & print(std::ostream &os) const override
LIEF::MachO::UnknownCommand::classof
static bool classof(const LoadCommand *cmd)
Definition
UnknownCommand.hpp:61
LIEF::MachO::UnknownCommand::UnknownCommand
UnknownCommand(const UnknownCommand ©)=default
LIEF::MachO::UnknownCommand::~UnknownCommand
~UnknownCommand() override=default
LIEF::Visitor
Definition
Visitor.hpp:210
LIEF::MachO::details
Definition
endianness_support.hpp:60
LIEF::MachO
Namespace related to the LIEF's Mach-O module.
Definition
Abstract/Header.hpp:36
LIEF
LIEF namespace.
Definition
Abstract/Binary.hpp:40
visibility.h
LIEF_API
#define LIEF_API
Definition
visibility.h:41
Generated by
1.17.0