* Hide RzAnalysis structure to force the usage of the C APIs. * Fix rop code & test * Fix linter * Fix rz_analysis_free to return void
56 lines
No EOL
1.5 KiB
C
56 lines
No EOL
1.5 KiB
C
// SPDX-FileCopyrightText: 2024 RizinOrg <info@rizin.re>
|
|
// SPDX-FileCopyrightText: 2024 deroad <wargio@libero.it>
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
|
|
#ifndef DEPRECATED_ARCH_HELPER_H
|
|
#define DEPRECATED_ARCH_HELPER_H
|
|
|
|
#include <rz_arch.h>
|
|
#include "analysis_private.h"
|
|
#include "asm_private.h"
|
|
|
|
#define DEPRECATED_OLD_ARCH_PLUGIN(name) \
|
|
RzArchPlugin rz_arch_plugin_##name = { \
|
|
.p_asm = &rz_asm_plugin_##name, \
|
|
.p_analysis = &rz_analysis_plugin_##name, \
|
|
.p_parse = &rz_parse_plugin_##name##_pseudo, \
|
|
}
|
|
|
|
#define DEPRECATED_OLD_ARCH_NO_PARSE_PLUGIN(name) \
|
|
RzArchPlugin rz_arch_plugin_##name = { \
|
|
.p_asm = &rz_asm_plugin_##name, \
|
|
.p_analysis = &rz_analysis_plugin_##name, \
|
|
.p_parse = NULL, \
|
|
}
|
|
|
|
#define DEPRECATED_OLD_ARCH_ASM_ONLY_PLUGIN(name) \
|
|
RzArchPlugin rz_arch_plugin_##name = { \
|
|
.p_asm = &rz_asm_plugin_##name, \
|
|
.p_analysis = NULL, \
|
|
.p_parse = NULL, \
|
|
}
|
|
|
|
#ifndef RZ_PLUGIN_INCORE
|
|
#define ARCH_PLUGIN_LIB_STRUCT(name) \
|
|
RZ_API RzLibStruct rizin_plugin = { \
|
|
.type = RZ_LIB_TYPE_ARCH, \
|
|
.data = &rz_arch_plugin_##name, \
|
|
.version = RZ_VERSION \
|
|
}
|
|
#else
|
|
#define ARCH_PLUGIN_LIB_STRUCT(name)
|
|
#endif
|
|
|
|
#define RZ_ARCH_WITH_PARSE_PLUGIN_DEFINE_DEPRECATED(name) \
|
|
DEPRECATED_OLD_ARCH_PLUGIN(name); \
|
|
ARCH_PLUGIN_LIB_STRUCT(name)
|
|
|
|
#define RZ_ARCH_PLUGIN_DEFINE_DEPRECATED(name) \
|
|
DEPRECATED_OLD_ARCH_NO_PARSE_PLUGIN(name); \
|
|
ARCH_PLUGIN_LIB_STRUCT(name)
|
|
|
|
#define RZ_ARCH_ASM_ONLY_PLUGIN_DEFINE_DEPRECATED(name) \
|
|
DEPRECATED_OLD_ARCH_ASM_ONLY_PLUGIN(name); \
|
|
ARCH_PLUGIN_LIB_STRUCT(name)
|
|
|
|
#endif /* DEPRECATED_ARCH_HELPER_H */ |