LIEF: Library to Instrument Executable Formats Version 2.0.0
Loading...
Searching...
No Matches
osx/Host.hpp
Go to the documentation of this file.
1/* Copyright 2017 - 2026 R. Thomas
2 * Copyright 2017 - 2026 Quarkslab
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#ifndef LIEF_RUNTIME_OSX_HOST_H
17#define LIEF_RUNTIME_OSX_HOST_H
18#include "LIEF/visibility.h"
19#include <cstdint>
20#include <ostream>
21#include <string>
22
23
25
27 public:
29 uint32_t major = 0;
30 uint32_t minor = 0;
31 uint32_t patch = 0;
32
33 version_t(uint32_t major, uint32_t minor, uint32_t patch) :
34 major(major),
35 minor(minor),
36 patch(patch) {}
37
38 bool operator<=(const version_t& rhs) const;
39 bool operator>(const version_t& rhs) const {
40 return !(*this <= rhs);
41 }
42
43 bool operator>=(const version_t& rhs) const;
44 bool operator<(const version_t& rhs) const {
45 return !(*this >= rhs);
46 }
47
48 bool operator==(const version_t& other) const;
49 bool operator!=(const version_t& other) const {
50 return !(*this == other);
51 }
52
53 std::string to_string() const;
54
55 static const version_t& BigSur();
56 static const version_t& Monterey();
57 static const version_t& Ventura();
58 static const version_t& Sonoma();
59 static const version_t& Sequoia();
60 static const version_t& Tahoe();
61
62 LIEF_API friend std::ostream& operator<<(std::ostream& os,
63 const version_t version) {
64 os << version.to_string();
65 return os;
66 }
67 };
68
70 static std::string os_version_name();
71
74
79 static bool is_sip_enabled();
80};
81
82
83}
84
85
86#endif
Definition osx/Host.hpp:26
static std::string os_version_name()
The OS version string (e.g. Version 26.2 (Build 25C56)).
static bool is_sip_enabled()
Whether System Integrity Protection (SIP) is enabled on this host.
static version_t os_version()
The OS version (e.g. 13.0.0).
Definition osx/Host.hpp:24
lief_version_t version()
Return the current version.
Definition osx/Host.hpp:28
static const version_t & Tahoe()
bool operator==(const version_t &other) const
bool operator<(const version_t &rhs) const
Definition osx/Host.hpp:44
uint32_t major
Definition osx/Host.hpp:29
bool operator<=(const version_t &rhs) const
version_t(uint32_t major, uint32_t minor, uint32_t patch)
Definition osx/Host.hpp:33
static const version_t & BigSur()
bool operator>=(const version_t &rhs) const
friend std::ostream & operator<<(std::ostream &os, const version_t version)
Definition osx/Host.hpp:62
uint32_t patch
Definition osx/Host.hpp:31
static const version_t & Ventura()
static const version_t & Sonoma()
static const version_t & Sequoia()
bool operator!=(const version_t &other) const
Definition osx/Host.hpp:49
uint32_t minor
Definition osx/Host.hpp:30
static const version_t & Monterey()
bool operator>(const version_t &rhs) const
Definition osx/Host.hpp:39
#define LIEF_API
Definition visibility.h:45