4
0
mirror of https://github.com/QuasarApp/LIEF.git synced 2025-04-28 21:34:32 +00:00
2018-05-04 12:46:28 +02:00

80 lines
3.0 KiB
C++

/* Copyright 2017 R. Thomas
* Copyright 2017 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "pyOAT.hpp"
#include "LIEF/OAT/Structures.hpp"
#include "LIEF/OAT/enums.hpp"
#include "LIEF/OAT/EnumToString.hpp"
#define PY_ENUM(x) to_string(x), x
namespace LIEF {
namespace OAT {
void init_enums(py::module& m) {
py::enum_<OAT_CLASS_TYPES>(m, "OAT_CLASS_TYPES")
.value(PY_ENUM(OAT_CLASS_TYPES::OAT_CLASS_ALL_COMPILED))
.value(PY_ENUM(OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED))
.value(PY_ENUM(OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED))
.export_values();
py::enum_<OAT_CLASS_STATUS>(m, "OAT_CLASS_STATUS")
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_RETIRED))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_ERROR))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_NOTREADY))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_IDX))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_LOADED))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_RESOLVING))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_RESOLVED))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_VERIFYING))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_RETRY_VERIFICATION_AT_RUNTIME))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_VERIFYING_AT_RUNTIME))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_VERIFIED))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_INITIALIZING))
.value(PY_ENUM(OAT_CLASS_STATUS::STATUS_INITIALIZED))
.export_values();
py::enum_<HEADER_KEYS>(m, "HEADER_KEYS")
.value(PY_ENUM(HEADER_KEYS::KEY_IMAGE_LOCATION))
.value(PY_ENUM(HEADER_KEYS::KEY_DEX2OAT_CMD_LINE))
.value(PY_ENUM(HEADER_KEYS::KEY_DEX2OAT_HOST))
.value(PY_ENUM(HEADER_KEYS::KEY_PIC))
.value(PY_ENUM(HEADER_KEYS::KEY_HAS_PATCH_INFO))
.value(PY_ENUM(HEADER_KEYS::KEY_DEBUGGABLE))
.value(PY_ENUM(HEADER_KEYS::KEY_NATIVE_DEBUGGABLE))
.value(PY_ENUM(HEADER_KEYS::KEY_COMPILER_FILTER))
.value(PY_ENUM(HEADER_KEYS::KEY_CLASS_PATH))
.value(PY_ENUM(HEADER_KEYS::KEY_BOOT_CLASS_PATH))
.value(PY_ENUM(HEADER_KEYS::KEY_CONCURRENT_COPYING))
.export_values();
py::enum_<INSTRUCTION_SETS>(m, "INSTRUCTION_SETS")
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_NONE))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_ARM))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_ARM_64))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_THUMB2))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_X86))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_X86_64))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_MIPS))
.value(PY_ENUM(INSTRUCTION_SETS::INST_SET_MIPS_64))
.export_values();
}
}
}