[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