[Forensics-changes] [yara] 86/407: Add YR_API macro for declaring functions as extern "C" in C++
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:28:13 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.3.0
in repository yara.
commit 925da0db882f1615a0ddfcd136dbe534f5d0627d
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Thu Oct 9 12:11:50 2014 +0200
Add YR_API macro for declaring functions as extern "C" in C++
---
libyara/compiler.c | 22 +++++++++++-----------
libyara/filemap.c | 8 ++++----
libyara/include/yara.h | 9 ---------
libyara/include/yara/compiler.h | 23 ++++++++++++-----------
libyara/include/yara/filemap.h | 6 ++++--
libyara/include/yara/libyara.h | 12 +++++++-----
libyara/include/yara/rules.h | 21 +++++++++++----------
libyara/include/yara/utils.h | 5 +++++
libyara/libyara.c | 10 +++++-----
libyara/rules.c | 20 ++++++++++----------
10 files changed, 69 insertions(+), 67 deletions(-)
diff --git a/libyara/compiler.c b/libyara/compiler.c
index c35de8b..c85cb77 100644
--- a/libyara/compiler.c
+++ b/libyara/compiler.c
@@ -29,7 +29,7 @@ limitations under the License.
#include <yara/strutils.h>
-int yr_compiler_create(
+YR_API int yr_compiler_create(
YR_COMPILER** compiler)
{
int result;
@@ -106,7 +106,7 @@ int yr_compiler_create(
}
-void yr_compiler_destroy(
+YR_API void yr_compiler_destroy(
YR_COMPILER* compiler)
{
int i;
@@ -156,7 +156,7 @@ void yr_compiler_destroy(
}
-void yr_compiler_set_callback(
+YR_API void yr_compiler_set_callback(
YR_COMPILER* compiler,
YR_COMPILER_CALLBACK_FUNC callback)
{
@@ -244,7 +244,7 @@ void _yr_compiler_pop_file_name(
}
-char* yr_compiler_get_current_file_name(
+YR_API char* yr_compiler_get_current_file_name(
YR_COMPILER* context)
{
if (context->file_name_stack_ptr > 0)
@@ -316,7 +316,7 @@ int _yr_compiler_set_namespace(
return ERROR_SUCCESS;
}
-int yr_compiler_add_file(
+YR_API int yr_compiler_add_file(
YR_COMPILER* compiler,
FILE* rules_file,
const char* namespace_,
@@ -339,7 +339,7 @@ int yr_compiler_add_file(
}
-int yr_compiler_add_string(
+YR_API int yr_compiler_add_string(
YR_COMPILER* compiler,
const char* rules_string,
const char* namespace_)
@@ -508,7 +508,7 @@ int _yr_compiler_compile_rules(
}
-int yr_compiler_get_rules(
+YR_API int yr_compiler_get_rules(
YR_COMPILER* compiler,
YR_RULES** rules)
{
@@ -550,7 +550,7 @@ int yr_compiler_get_rules(
}
-int yr_compiler_define_integer_variable(
+YR_API int yr_compiler_define_integer_variable(
YR_COMPILER* compiler,
const char* identifier,
int64_t value)
@@ -594,7 +594,7 @@ int yr_compiler_define_integer_variable(
}
-int yr_compiler_define_boolean_variable(
+YR_API int yr_compiler_define_boolean_variable(
YR_COMPILER* compiler,
const char* identifier,
int value)
@@ -606,7 +606,7 @@ int yr_compiler_define_boolean_variable(
}
-int yr_compiler_define_string_variable(
+YR_API int yr_compiler_define_string_variable(
YR_COMPILER* compiler,
const char* identifier,
const char* value)
@@ -656,7 +656,7 @@ int yr_compiler_define_string_variable(
}
-char* yr_compiler_get_error_message(
+YR_API char* yr_compiler_get_error_message(
YR_COMPILER* compiler,
char* buffer,
int buffer_size)
diff --git a/libyara/filemap.c b/libyara/filemap.c
index e371968..4b6f516 100755
--- a/libyara/filemap.c
+++ b/libyara/filemap.c
@@ -34,7 +34,7 @@ limitations under the License.
// Win32 implementation
//
-int yr_filemap_map(
+YR_API int yr_filemap_map(
const char* file_path,
YR_MAPPED_FILE* pmapped_file)
{
@@ -108,7 +108,7 @@ int yr_filemap_map(
return ERROR_SUCCESS;
}
-void yr_filemap_unmap(
+YR_API void yr_filemap_unmap(
YR_MAPPED_FILE* pmapped_file)
{
if (pmapped_file->data != NULL)
@@ -126,7 +126,7 @@ void yr_filemap_unmap(
// POSIX implementation
//
-int yr_filemap_map(
+YR_API int yr_filemap_map(
const char* file_path,
YR_MAPPED_FILE* pmapped_file)
{
@@ -169,7 +169,7 @@ int yr_filemap_map(
return ERROR_SUCCESS;
}
-void yr_filemap_unmap(
+YR_API void yr_filemap_unmap(
YR_MAPPED_FILE* pmapped_file)
{
if (pmapped_file->data != NULL)
diff --git a/libyara/include/yara.h b/libyara/include/yara.h
index e0870e6..0a176bb 100644
--- a/libyara/include/yara.h
+++ b/libyara/include/yara.h
@@ -17,11 +17,6 @@ limitations under the License.
#ifndef YR_YARA_H
#define YR_YARA_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
#include "yara/utils.h"
#include "yara/filemap.h"
#include "yara/compiler.h"
@@ -30,8 +25,4 @@ extern "C" {
#include "yara/libyara.h"
#include "yara/error.h"
-#ifdef __cplusplus
-} /* end extern "C" */
-#endif
-
#endif
diff --git a/libyara/include/yara/compiler.h b/libyara/include/yara/compiler.h
index fa5115e..dad7e2b 100644
--- a/libyara/include/yara/compiler.h
+++ b/libyara/include/yara/compiler.h
@@ -23,6 +23,7 @@ limitations under the License.
#include <yara/ahocorasick.h>
#include <yara/arena.h>
#include <yara/hash.h>
+#include <yara/utils.h>
#define YARA_ERROR_LEVEL_ERROR 0
@@ -117,61 +118,61 @@ void _yr_compiler_pop_file_name(
YR_COMPILER* compiler);
-int yr_compiler_create(
+YR_API int yr_compiler_create(
YR_COMPILER** compiler);
-void yr_compiler_destroy(
+YR_API void yr_compiler_destroy(
YR_COMPILER* compiler);
-void yr_compiler_set_callback(
+YR_API void yr_compiler_set_callback(
YR_COMPILER* compiler,
YR_COMPILER_CALLBACK_FUNC callback);
-int yr_compiler_add_file(
+YR_API int yr_compiler_add_file(
YR_COMPILER* compiler,
FILE* rules_file,
const char* namespace_,
const char* file_name);
-int yr_compiler_add_string(
+YR_API int yr_compiler_add_string(
YR_COMPILER* compiler,
const char* rules_string,
const char* namespace_);
-char* yr_compiler_get_error_message(
+YR_API char* yr_compiler_get_error_message(
YR_COMPILER* compiler,
char* buffer,
int buffer_size);
-char* yr_compiler_get_current_file_name(
+YR_API char* yr_compiler_get_current_file_name(
YR_COMPILER* context);
-int yr_compiler_define_integer_variable(
+YR_API int yr_compiler_define_integer_variable(
YR_COMPILER* compiler,
const char* identifier,
int64_t value);
-int yr_compiler_define_boolean_variable(
+YR_API int yr_compiler_define_boolean_variable(
YR_COMPILER* compiler,
const char* identifier,
int value);
-int yr_compiler_define_string_variable(
+YR_API int yr_compiler_define_string_variable(
YR_COMPILER* compiler,
const char* identifier,
const char* value);
-int yr_compiler_get_rules(
+YR_API int yr_compiler_get_rules(
YR_COMPILER* compiler,
YR_RULES** rules);
diff --git a/libyara/include/yara/filemap.h b/libyara/include/yara/filemap.h
index 8ae773c..9b2dc34 100755
--- a/libyara/include/yara/filemap.h
+++ b/libyara/include/yara/filemap.h
@@ -27,6 +27,8 @@ limitations under the License.
#include <stdlib.h>
#include <stdint.h>
+#include <yara/utils.h>
+
typedef struct _YR_MAPPED_FILE
{
@@ -40,12 +42,12 @@ typedef struct _YR_MAPPED_FILE
} YR_MAPPED_FILE;
-int yr_filemap_map(
+YR_API int yr_filemap_map(
const char* file_path,
YR_MAPPED_FILE* pmapped_file);
-void yr_filemap_unmap(
+YR_API void yr_filemap_unmap(
YR_MAPPED_FILE* pmapped_file);
#endif
diff --git a/libyara/include/yara/libyara.h b/libyara/include/yara/libyara.h
index edce8a3..5ffb37a 100644
--- a/libyara/include/yara/libyara.h
+++ b/libyara/include/yara/libyara.h
@@ -17,18 +17,20 @@ limitations under the License.
#ifndef YR_LIBYARA_H
#define YR_LIBYARA_H
-int yr_initialize(void);
+#include <yara/utils.h>
+YR_API int yr_initialize(void);
-int yr_finalize(void);
+YR_API int yr_finalize(void);
-void yr_finalize_thread(void);
+YR_API void yr_finalize_thread(void);
-int yr_get_tidx(void);
+YR_API int yr_get_tidx(void);
-void yr_set_tidx(int);
+
+YR_API void yr_set_tidx(int);
#endif
diff --git a/libyara/include/yara/rules.h b/libyara/include/yara/rules.h
index 43cf163..c65f0fd 100644
--- a/libyara/include/yara/rules.h
+++ b/libyara/include/yara/rules.h
@@ -19,6 +19,7 @@ limitations under the License.
#define YR_RULES_H
#include <yara/types.h>
+#include <yara/utils.h>
#define CALLBACK_MSG_RULE_MATCHING 1
@@ -54,7 +55,7 @@ limitations under the License.
-int yr_rules_scan_mem(
+YR_API int yr_rules_scan_mem(
YR_RULES* rules,
uint8_t* buffer,
size_t buffer_size,
@@ -64,7 +65,7 @@ int yr_rules_scan_mem(
int timeout);
-int yr_rules_scan_file(
+YR_API int yr_rules_scan_file(
YR_RULES* rules,
const char* filename,
int flags,
@@ -73,7 +74,7 @@ int yr_rules_scan_file(
int timeout);
-int yr_rules_scan_proc(
+YR_API int yr_rules_scan_proc(
YR_RULES* rules,
int pid,
int flags,
@@ -82,39 +83,39 @@ int yr_rules_scan_proc(
int timeout);
-int yr_rules_save(
+YR_API int yr_rules_save(
YR_RULES* rules,
const char* filename);
-int yr_rules_load(
+YR_API int yr_rules_load(
const char* filename,
YR_RULES** rules);
-int yr_rules_destroy(
+YR_API int yr_rules_destroy(
YR_RULES* rules);
-int yr_rules_define_integer_variable(
+YR_API int yr_rules_define_integer_variable(
YR_RULES* rules,
const char* identifier,
int64_t value);
-int yr_rules_define_boolean_variable(
+YR_API int yr_rules_define_boolean_variable(
YR_RULES* rules,
const char* identifier,
int value);
-int yr_rules_define_string_variable(
+YR_API int yr_rules_define_string_variable(
YR_RULES* rules,
const char* identifier,
const char* value);
-void yr_rules_print_profiling_info(
+YR_API void yr_rules_print_profiling_info(
YR_RULES* rules);
#endif
diff --git a/libyara/include/yara/utils.h b/libyara/include/yara/utils.h
index 1534a45..45c62ea 100644
--- a/libyara/include/yara/utils.h
+++ b/libyara/include/yara/utils.h
@@ -30,6 +30,11 @@ limitations under the License.
#define NULL 0
#endif
+#ifdef __cplusplus
+#define YR_API extern "C"
+#else
+#define YR_API
+#endif
#ifndef min
#define min(x, y) ((x < y) ? (x) : (y))
diff --git a/libyara/libyara.c b/libyara/libyara.c
index 4a51153..82aa447 100644
--- a/libyara/libyara.c
+++ b/libyara/libyara.c
@@ -50,7 +50,7 @@ char altercase[256];
// function from libyara.
//
-int yr_initialize(void)
+YR_API int yr_initialize(void)
{
int i;
@@ -89,7 +89,7 @@ int yr_initialize(void)
// Should be called by ALL threads using libyara before exiting.
//
-void yr_finalize_thread(void)
+YR_API void yr_finalize_thread(void)
{
yr_re_finalize_thread();
}
@@ -103,7 +103,7 @@ void yr_finalize_thread(void)
// calls it.
//
-int yr_finalize(void)
+YR_API int yr_finalize(void)
{
yr_re_finalize_thread();
@@ -134,7 +134,7 @@ int yr_finalize(void)
// thread.
//
-void yr_set_tidx(int tidx)
+YR_API void yr_set_tidx(int tidx)
{
#ifdef _WIN32
TlsSetValue(tidx_key, (LPVOID) (tidx + 1));
@@ -154,7 +154,7 @@ void yr_set_tidx(int tidx)
// have any tidx associated.
//
-int yr_get_tidx(void)
+YR_API int yr_get_tidx(void)
{
#ifdef _WIN32
return (int) TlsGetValue(tidx_key) - 1;
diff --git a/libyara/rules.c b/libyara/rules.c
index 31ddf5a..28a0c07 100644
--- a/libyara/rules.c
+++ b/libyara/rules.c
@@ -60,7 +60,7 @@ void _yr_rules_unlock(
}
-int yr_rules_define_integer_variable(
+YR_API int yr_rules_define_integer_variable(
YR_RULES* rules,
const char* identifier,
int64_t value)
@@ -84,7 +84,7 @@ int yr_rules_define_integer_variable(
}
-int yr_rules_define_boolean_variable(
+YR_API int yr_rules_define_boolean_variable(
YR_RULES* rules,
const char* identifier,
int value)
@@ -108,7 +108,7 @@ int yr_rules_define_boolean_variable(
}
-int yr_rules_define_string_variable(
+YR_API int yr_rules_define_string_variable(
YR_RULES* rules,
const char* identifier,
const char* value)
@@ -282,7 +282,7 @@ int yr_rules_scan_mem_block(
}
-int yr_rules_scan_mem_blocks(
+YR_API int yr_rules_scan_mem_blocks(
YR_RULES* rules,
YR_MEMORY_BLOCK* block,
int flags,
@@ -472,7 +472,7 @@ _exit:
}
-int yr_rules_scan_mem(
+YR_API int yr_rules_scan_mem(
YR_RULES* rules,
uint8_t* buffer,
size_t buffer_size,
@@ -498,7 +498,7 @@ int yr_rules_scan_mem(
}
-int yr_rules_scan_file(
+YR_API int yr_rules_scan_file(
YR_RULES* rules,
const char* filename,
int flags,
@@ -529,7 +529,7 @@ int yr_rules_scan_file(
}
-int yr_rules_scan_proc(
+YR_API int yr_rules_scan_proc(
YR_RULES* rules,
int pid,
int flags,
@@ -570,7 +570,7 @@ int yr_rules_scan_proc(
}
-int yr_rules_save(
+YR_API int yr_rules_save(
YR_RULES* rules,
const char* filename)
{
@@ -579,7 +579,7 @@ int yr_rules_save(
}
-int yr_rules_load(
+YR_API int yr_rules_load(
const char* filename,
YR_RULES** rules)
{
@@ -626,7 +626,7 @@ int yr_rules_load(
}
-int yr_rules_destroy(
+YR_API int yr_rules_destroy(
YR_RULES* rules)
{
YR_EXTERNAL_VARIABLE* external;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git
More information about the forensics-changes
mailing list