From a79fa3ff8e682a3ca4af512f5c5e378efd2b0f51 Mon Sep 17 00:00:00 2001 From: Yuval Peress Date: Tue, 6 Sep 2022 12:06:24 -0600 Subject: [PATCH 1/2] modules: Remove fff tests I've update FFF to run tests in the native CI for GitHub, so we no longer need to run these extra tests. Remove the fff module from west.yml since the module was only used in the CI and the header was directly included in the Zephyr tree. See https://github.com/zephyrproject-rtos/fff/pull/2 Signed-off-by: Yuval Peress --- modules/Kconfig | 3 --- modules/fff/CMakeLists.txt | 24 ----------------------- modules/fff/Kconfig | 26 ------------------------- modules/fff/include/c_test_framework.h | 27 -------------------------- tests/ztest/mock_fff/CMakeLists.txt | 12 ------------ tests/ztest/mock_fff/prj.conf | 3 --- tests/ztest/mock_fff/prj_global.conf | 3 --- tests/ztest/mock_fff/src/main.c | 14 ------------- tests/ztest/mock_fff/testcase.yaml | 12 ------------ west.yml | 8 -------- 10 files changed, 132 deletions(-) delete mode 100644 modules/fff/CMakeLists.txt delete mode 100644 modules/fff/Kconfig delete mode 100644 modules/fff/include/c_test_framework.h delete mode 100644 tests/ztest/mock_fff/CMakeLists.txt delete mode 100644 tests/ztest/mock_fff/prj.conf delete mode 100644 tests/ztest/mock_fff/prj_global.conf delete mode 100644 tests/ztest/mock_fff/src/main.c delete mode 100644 tests/ztest/mock_fff/testcase.yaml diff --git a/modules/Kconfig b/modules/Kconfig index 103ea092ae5a9..f96f418c11bce 100644 --- a/modules/Kconfig +++ b/modules/Kconfig @@ -89,9 +89,6 @@ comment "loramac-node module not available." comment "CANopenNode module not available." depends on !ZEPHYR_CANOPENNODE_MODULE -comment "FFF module not available." - depends on !ZEPHYR_FFF_MODULE - comment "zcbor module not available." depends on !ZEPHYR_ZCBOR_MODULE diff --git a/modules/fff/CMakeLists.txt b/modules/fff/CMakeLists.txt deleted file mode 100644 index a7cbc6617597b..0000000000000 --- a/modules/fff/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (c) 2021 Google LLC -# -# SPDX-License-Identifier: Apache-2.0 - - -if(CONFIG_FFF_TEST) - # Add the FFF C test suites as ztest suites - message("CONFIG_FFF_TEST_TYPE_C=${CONFIG_FFF_TEST_TYPE_C}") - message("CONFIG_FFF_TEST_TYPE_GLOBAL_C=${CONFIG_FFF_TEST_TYPE_GLOBAL_C}") - zephyr_library() - zephyr_include_directories( - include - "${ZEPHYR_CURRENT_MODULE_DIR}" - "${ZEPHYR_CURRENT_MODULE_DIR}/test" - ) - if(DEFINED CONFIG_FFF_TEST_TYPE_C) - zephyr_library_sources("${ZEPHYR_CURRENT_MODULE_DIR}/test/fff_test_c.c") - elseif(DEFINED CONFIG_FFF_TEST_TYPE_GLOBAL_C) - zephyr_library_sources( - "${ZEPHYR_CURRENT_MODULE_DIR}/test/fff_test_global_c.c" - "${ZEPHYR_CURRENT_MODULE_DIR}/test/global_fakes.c" - ) - endif() -endif() diff --git a/modules/fff/Kconfig b/modules/fff/Kconfig deleted file mode 100644 index c430b8228d4e2..0000000000000 --- a/modules/fff/Kconfig +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (c) 2021 Google LLC -# SPDX-License-Identifier: Apache-2.0 - -config ZEPHYR_FFF_MODULE - bool - -menuconfig FFF_TEST - bool "FFF Test suite" - help - Enable the FFF test suite. This should really only be called from the tests for FFF under - tests/ztest/mock_fff/. It brings in the test sources from the upstream FFF module. - -if FFF_TEST - -choice FFF_TEST_TYPE - prompt "The type of FFF test to bring in" - -config FFF_TEST_TYPE_C - bool "Compile the FFF default C test suite as a zephyr library" - -config FFF_TEST_TYPE_GLOBAL_C - bool "Compile the FFF global C test suite as a zephyr library" - -endchoice # FFF_TEST_TYPE - -endif # FFF_TEST diff --git a/modules/fff/include/c_test_framework.h b/modules/fff/include/c_test_framework.h deleted file mode 100644 index 8a1d56395c11b..0000000000000 --- a/modules/fff/include/c_test_framework.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2021 Google LLC - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#ifndef MODULES_FFF_TEST_INCLUDE_C_TEST_FRAMEWORK_H_ -#define MODULES_FFF_TEST_INCLUDE_C_TEST_FRAMEWORK_H_ - -#include -#include - -void setup(void); -void fff_test_suite(void); - -#define PRINTF(FMT, args...) -#define TEST_F(SUITE, NAME) __attribute__((unused)) static void test_##NAME(void) -#define RUN_TEST(SUITE, NAME) \ - do { \ - ztest_test_suite( \ - SUITE##_##NAME, \ - ztest_unit_test_setup_teardown(test_##NAME, setup, unit_test_noop)); \ - ztest_run_test_suite(SUITE##_##NAME); \ - } while (0) -#define ASSERT_EQ(A, B) zassert_equal((A), (B), NULL) -#define ASSERT_TRUE(A) zassert_true((A), NULL) - -#endif /* MODULES_FFF_TEST_INCLUDE_C_TEST_FRAMEWORK_H_ */ diff --git a/tests/ztest/mock_fff/CMakeLists.txt b/tests/ztest/mock_fff/CMakeLists.txt deleted file mode 100644 index 5a5540da28b03..0000000000000 --- a/tests/ztest/mock_fff/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2021 Google LLC -# SPDX-License-Identifier: Apache-2.0 - -cmake_minimum_required(VERSION 3.20.0) - -# Add the Zephyr package and create the project -find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) -project(mock_fff) - -# Glob the sources and add them to the app -FILE(GLOB app_sources src/*.c) -target_sources(app PRIVATE ${app_sources}) diff --git a/tests/ztest/mock_fff/prj.conf b/tests/ztest/mock_fff/prj.conf deleted file mode 100644 index 5bdc0b41e6312..0000000000000 --- a/tests/ztest/mock_fff/prj.conf +++ /dev/null @@ -1,3 +0,0 @@ -CONFIG_ZTEST=y -CONFIG_FFF_TEST=y -CONFIG_FFF_TEST_TYPE_C=y diff --git a/tests/ztest/mock_fff/prj_global.conf b/tests/ztest/mock_fff/prj_global.conf deleted file mode 100644 index 8f1817d617c85..0000000000000 --- a/tests/ztest/mock_fff/prj_global.conf +++ /dev/null @@ -1,3 +0,0 @@ -CONFIG_ZTEST=y -CONFIG_FFF_TEST=y -CONFIG_FFF_TEST_TYPE_GLOBAL_C=y diff --git a/tests/ztest/mock_fff/src/main.c b/tests/ztest/mock_fff/src/main.c deleted file mode 100644 index 908018a0ca620..0000000000000 --- a/tests/ztest/mock_fff/src/main.c +++ /dev/null @@ -1,14 +0,0 @@ -/* Copyright 2021 Google LLC - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include - -#include - -void test_main(void) -{ - fff_test_suite(); -} diff --git a/tests/ztest/mock_fff/testcase.yaml b/tests/ztest/mock_fff/testcase.yaml deleted file mode 100644 index d1c14d345a12c..0000000000000 --- a/tests/ztest/mock_fff/testcase.yaml +++ /dev/null @@ -1,12 +0,0 @@ -tests: - testing.ztest.mock_fff: - filter: CONFIG_ZEPHYR_FFF_MODULE - tags: test_framework - integration_platforms: - - native_posix - testing.ztest.mock_fff_global: - filter: CONFIG_ZEPHYR_FFF_MODULE - tags: test_framework - extra_args: CONF_FILE=prj_global.conf - integration_platforms: - - native_posix diff --git a/west.yml b/west.yml index a02911cb096f3..da5948c894912 100644 --- a/west.yml +++ b/west.yml @@ -46,11 +46,6 @@ manifest: path: modules/fs/fatfs groups: - fs - - name: fff - revision: 6ce5ba26486e93d5b7696a3e23f0585932c14b16 - path: modules/lib/fff - groups: - - ci - name: hal_altera revision: 0d225ddd314379b32355a00fb669eacf911e750d path: modules/hal/altera @@ -264,9 +259,6 @@ manifest: path: modules/lib/zscilib revision: ca070ddabdaf67175a2da901d0bd62e8899371c5 - group-filter: - - -ci - self: path: zephyr west-commands: scripts/west-commands.yml From 5e8d47318cd93ab15657de3804c607b22505329f Mon Sep 17 00:00:00 2001 From: Yuval Peress Date: Tue, 6 Sep 2022 12:12:42 -0600 Subject: [PATCH 2/2] mocking: Update fff.h Update fff.h to the pending PR upstream which allows for using a custom function signature. This enables the use of C++ std::function as the mock. Signed-off-by: Yuval Peress --- subsys/testsuite/include/zephyr/fff.h | 1706 ++++++++++++------------- 1 file changed, 814 insertions(+), 892 deletions(-) diff --git a/subsys/testsuite/include/zephyr/fff.h b/subsys/testsuite/include/zephyr/fff.h index 5c107816f312b..de2efe3d36a82 100644 --- a/subsys/testsuite/include/zephyr/fff.h +++ b/subsys/testsuite/include/zephyr/fff.h @@ -39,6 +39,9 @@ SOFTWARE. #ifndef FFF_GCC_FUNCTION_ATTRIBUTES #define FFF_GCC_FUNCTION_ATTRIBUTES #endif +#ifndef CUSTOM_FFF_FUNCTION_TEMPLATE +#define CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN, FUNCNAME, ...) RETURN (*FUNCNAME)(__VA_ARGS__) +#endif /* CUSTOM_FFF_FUNCTION_TEMPLATE */ /* -- INTERNAL HELPER MACROS -- */ #define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ @@ -70,9 +73,10 @@ SOFTWARE. #define ROOM_FOR_MORE_HISTORY(FUNCNAME) FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN -#define SAVE_RET_HISTORY(FUNCNAME, RETVAL) \ - if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN) \ - memcpy((void *)&FUNCNAME##_fake.return_val_history[FUNCNAME##_fake.call_count - 1], \ +#define SAVE_RET_HISTORY(FUNCNAME, RETVAL) \ + if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN) \ + memcpy((void *)&FUNCNAME##_fake \ + .return_val_history[FUNCNAME##_fake.call_count - 1], \ (const void *)&RETVAL, sizeof(RETVAL)); #define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \ @@ -93,26 +97,27 @@ SOFTWARE. #define INCREMENT_CALL_COUNT(FUNCNAME) FUNCNAME##_fake.call_count++ -#define RETURN_FAKE_RESULT(FUNCNAME) \ - if (FUNCNAME##_fake.return_val_seq_len) { /* then its a sequence */ \ - if (FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \ - SAVE_RET_HISTORY( \ - FUNCNAME, \ - FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx]) \ - return FUNCNAME##_fake \ - .return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \ - } \ - SAVE_RET_HISTORY( \ - FUNCNAME, \ - FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len - 1]) \ - return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len - \ - 1]; /* return last element */ \ - } \ - SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val) \ +#define RETURN_FAKE_RESULT(FUNCNAME) \ + if (FUNCNAME##_fake.return_val_seq_len) { /* then its a sequence */ \ + if (FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \ + SAVE_RET_HISTORY( \ + FUNCNAME, \ + FUNCNAME##_fake \ + .return_val_seq[FUNCNAME##_fake.return_val_seq_idx]) \ + return FUNCNAME##_fake \ + .return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \ + } \ + SAVE_RET_HISTORY( \ + FUNCNAME, \ + FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len - 1]) \ + return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len - \ + 1]; /* return last element */ \ + } \ + SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val) \ return FUNCNAME##_fake.return_val; #ifdef __cplusplus -#define FFF_EXTERN_C extern "C" { +#define FFF_EXTERN_C extern "C" { #define FFF_END_EXTERN_C } #else /* ansi c */ #define FFF_EXTERN_C @@ -122,7 +127,11 @@ SOFTWARE. #define DEFINE_RESET_FUNCTION(FUNCNAME) \ void FUNCNAME##_reset(void) \ { \ - memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \ + memset((void *)&FUNCNAME##_fake, 0, \ + sizeof(FUNCNAME##_fake) - sizeof(FUNCNAME##_fake.custom_fake) - \ + sizeof(FUNCNAME##_fake.custom_fake_seq)); \ + FUNCNAME##_fake.custom_fake = NULL; \ + FUNCNAME##_fake.custom_fake_seq = NULL; \ FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN; \ } /* -- END INTERNAL HELPER MACROS -- */ @@ -154,8 +163,8 @@ FFF_END_EXTERN_C typedef struct FUNCNAME##_Fake { \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(void); \ - void (**custom_fake_seq)(void); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, void); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, void); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -182,7 +191,7 @@ FFF_END_EXTERN_C 1](); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(); \ } \ } \ @@ -197,8 +206,8 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0); \ - void (**custom_fake_seq)(ARG0_TYPE arg0); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -228,7 +237,7 @@ FFF_END_EXTERN_C arg0); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0); \ } \ } \ @@ -244,8 +253,8 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -277,7 +286,7 @@ FFF_END_EXTERN_C arg0, arg1); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1); \ } \ } \ @@ -294,8 +303,9 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -329,7 +339,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ } \ } \ @@ -347,10 +357,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -388,7 +398,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ } \ } \ @@ -407,10 +417,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -450,7 +460,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ } \ } \ @@ -471,10 +481,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -517,7 +527,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ } \ } \ @@ -542,12 +552,11 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -594,7 +603,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ } \ } \ @@ -620,12 +629,12 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -674,7 +683,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7); \ } \ @@ -702,12 +711,12 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -760,7 +769,7 @@ FFF_END_EXTERN_C arg8); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8); \ } \ @@ -789,29 +798,25 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); #define DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -853,7 +858,7 @@ FFF_END_EXTERN_C arg8, arg9); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9); \ } \ @@ -884,14 +889,13 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -950,7 +954,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10); \ } \ @@ -983,32 +987,30 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11); #define DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ ARG11_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1054,7 +1056,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11); \ } \ @@ -1090,34 +1092,30 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); #define DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ ARG11_TYPE, ARG12_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1165,7 +1163,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12); \ } \ @@ -1202,16 +1200,14 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -1277,7 +1273,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12, arg13); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ } \ @@ -1315,36 +1311,33 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, \ - ARG13_TYPE arg13, ARG14_TYPE arg14); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ + ARG14_TYPE arg14); #define DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, \ - ARG13_TYPE arg13, ARG14_TYPE arg14) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ + ARG14_TYPE arg14) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1396,7 +1389,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14); \ @@ -1437,18 +1430,16 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -1522,7 +1513,7 @@ FFF_END_EXTERN_C arg15); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14, arg15); \ @@ -1565,18 +1556,16 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -1653,7 +1642,7 @@ FFF_END_EXTERN_C arg15, arg16); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14, arg15, arg16); \ @@ -1698,18 +1687,16 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, ARG17_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -1788,7 +1775,7 @@ FFF_END_EXTERN_C arg15, arg16, arg17); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14, arg15, arg16, arg17); \ @@ -1835,20 +1822,17 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -1931,7 +1915,7 @@ FFF_END_EXTERN_C arg15, arg16, arg17, arg18); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14, arg15, arg16, arg17, arg18); \ @@ -1979,20 +1963,18 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG19_TYPE, 19, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, ARG19_TYPE arg19); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, ARG19_TYPE arg19); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, \ + ARG19_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, ARG19_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2077,7 +2059,7 @@ FFF_END_EXTERN_C arg15, arg16, arg17, arg18, arg19); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, \ arg7, arg8, arg9, arg10, arg11, arg12, arg13, \ arg14, arg15, arg16, arg17, arg18, arg19); \ @@ -2104,8 +2086,8 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(void); \ - RETURN_TYPE (**custom_fake_seq)(void); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, void); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, void); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2140,7 +2122,7 @@ FFF_END_EXTERN_C 1](); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -2161,8 +2143,8 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0); \ - RETURN_TYPE (**custom_fake_seq)(ARG0_TYPE arg0); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2199,7 +2181,7 @@ FFF_END_EXTERN_C arg0); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -2221,8 +2203,8 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ - RETURN_TYPE (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2262,7 +2244,7 @@ FFF_END_EXTERN_C arg0, arg1); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -2285,8 +2267,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ - RETURN_TYPE (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2330,7 +2314,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -2355,10 +2339,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2404,7 +2388,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -2431,10 +2415,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2483,7 +2467,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -2514,12 +2498,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2573,7 +2555,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -2605,27 +2587,25 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6); + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6); #define DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6) \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2668,7 +2648,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, \ arg4, arg5, arg6); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -2702,27 +2682,25 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7); + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); #define DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7) \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2768,7 +2746,7 @@ FFF_END_EXTERN_C arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, \ arg4, arg5, arg6, arg7); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -2803,12 +2781,12 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2870,7 +2848,7 @@ FFF_END_EXTERN_C arg8); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -2907,12 +2885,12 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -2977,7 +2955,7 @@ FFF_END_EXTERN_C arg8, arg9); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ @@ -3017,14 +2995,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3094,7 +3072,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ arg6, arg7, arg8, arg9, arg10); \ @@ -3137,14 +3115,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3216,7 +3194,7 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = \ FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ arg6, arg7, arg8, arg9, arg10, arg11); \ @@ -3260,14 +3238,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3341,11 +3319,10 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ - RETURN_TYPE ret = \ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12); \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ @@ -3389,14 +3366,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3473,11 +3450,10 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12, arg13); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ - RETURN_TYPE ret = \ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13); \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ @@ -3523,16 +3499,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3615,11 +3591,10 @@ FFF_END_EXTERN_C arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ - RETURN_TYPE ret = \ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14); \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ @@ -3667,16 +3642,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3762,11 +3737,10 @@ FFF_END_EXTERN_C arg15); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ - RETURN_TYPE ret = \ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15); \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ @@ -3815,16 +3789,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -3912,11 +3886,10 @@ FFF_END_EXTERN_C arg15, arg16); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ - RETURN_TYPE ret = \ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16); \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ + RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ @@ -3967,16 +3940,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4066,16 +4039,15 @@ FFF_END_EXTERN_C arg15, arg16, arg17); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ - return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16, \ - arg17); \ + return FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ } \ RETURN_FAKE_RESULT(FUNCNAME) \ } \ @@ -4094,11 +4066,10 @@ FFF_END_EXTERN_C ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) -#define DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ - ARG18_TYPE) \ +#define DECLARE_FAKE_VALUE_FUNC19( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -4123,18 +4094,18 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4228,16 +4199,15 @@ FFF_END_EXTERN_C arg15, arg16, arg17, arg18); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ - return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16, \ - arg17, arg18); \ + return FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ } \ RETURN_FAKE_RESULT(FUNCNAME) \ } \ @@ -4257,11 +4227,10 @@ FFF_END_EXTERN_C ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) -#define DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ - ARG18_TYPE, ARG19_TYPE) \ +#define DECLARE_FAKE_VALUE_FUNC20( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -4287,18 +4256,18 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, ARG19_TYPE arg19); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, ARG19_TYPE arg19); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, ARG19_TYPE); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, ARG19_TYPE); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4309,11 +4278,10 @@ FFF_END_EXTERN_C ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ ARG18_TYPE arg18, ARG19_TYPE arg19); -#define DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, \ - ARG19_TYPE) \ +#define DEFINE_FAKE_VALUE_FUNC20( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -4397,16 +4365,15 @@ FFF_END_EXTERN_C arg15, arg16, arg17, arg18, arg19); \ } \ } \ - if (FUNCNAME##_fake.custom_fake) { \ + if (FUNCNAME##_fake.custom_fake != NULL) { \ RETURN_TYPE ret = FUNCNAME##_fake.custom_fake( \ arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ - return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16, \ - arg17, arg18, arg19); \ + return FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ } \ RETURN_FAKE_RESULT(FUNCNAME) \ } \ @@ -4432,8 +4399,8 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4488,8 +4455,9 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4547,9 +4515,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4612,10 +4581,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4682,10 +4651,10 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4759,11 +4728,11 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4842,12 +4811,12 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -4929,12 +4898,12 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -5023,28 +4992,25 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ...); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...); #define DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ...) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5124,14 +5090,13 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -5231,14 +5196,14 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -5342,34 +5307,30 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ...); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ...); #define DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ...) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5460,34 +5421,30 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, ...); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...); #define DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, ...) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5561,10 +5518,9 @@ FFF_END_EXTERN_C ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) -#define DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ...) \ +#define DECLARE_FAKE_VOID_FUNC15_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -5582,16 +5538,15 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -5600,10 +5555,9 @@ FFF_END_EXTERN_C ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ...); -#define DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ...) \ +#define DEFINE_FAKE_VOID_FUNC15_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -5709,39 +5663,35 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, \ - ARG13_TYPE arg13, ARG14_TYPE arg14, ...); + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ + ARG14_TYPE arg14, ...); #define DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ ARG14_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, \ - ARG11_TYPE arg11, ARG12_TYPE arg12, \ - ARG13_TYPE arg13, ARG14_TYPE arg14, ...) \ + void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ + ARG14_TYPE arg14, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5847,18 +5797,16 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -5986,18 +5934,16 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6129,20 +6075,17 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6251,11 +6194,10 @@ FFF_END_EXTERN_C ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) -#define DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ - ARG18_TYPE, ...) \ +#define DECLARE_FAKE_VOID_FUNC20_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -6278,20 +6220,18 @@ FFF_END_EXTERN_C DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \ DECLARE_ALL_FUNC_COMMON \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - void (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, va_list ap); \ - void (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, \ - ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, \ - ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, \ - ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, \ - ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, custom_fake, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ + ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ + ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, \ + ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(void, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6302,11 +6242,10 @@ FFF_END_EXTERN_C ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ ARG18_TYPE arg18, ...); -#define DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, \ - ...) \ +#define DEFINE_FAKE_VOID_FUNC20_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, \ + ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ void FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -6396,16 +6335,14 @@ FFF_END_EXTERN_C ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, \ ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, \ ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ - DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ - ARG18_TYPE, ...) \ - DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, \ - ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ - ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ - ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, \ - ...) + DECLARE_FAKE_VOID_FUNC20_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ + DEFINE_FAKE_VOID_FUNC20_VARARG( \ + FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) #define DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ @@ -6414,8 +6351,9 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0, va_list ap); \ - RETURN_TYPE (**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6484,8 +6422,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ - RETURN_TYPE (**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6558,10 +6498,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6641,10 +6581,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6729,12 +6669,10 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6825,12 +6763,12 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -6924,27 +6862,25 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ...); + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ...); #define DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ...) \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -7031,27 +6967,25 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ...); + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...); #define DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, ...) \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -7143,12 +7077,12 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -7259,32 +7193,30 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, \ - ARG8_TYPE arg8, ARG9_TYPE arg9, ...); + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ...); #define DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ ARG8_TYPE, ARG9_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ - RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, \ - ARG2_TYPE arg2, ARG3_TYPE arg3, \ - ARG4_TYPE arg4, ARG5_TYPE arg5, \ - ARG6_TYPE arg6, ARG7_TYPE arg7, \ - ARG8_TYPE arg8, ARG9_TYPE arg9, ...) \ + RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ + ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ + ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ + ...) \ { \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -7385,14 +7317,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -7512,14 +7444,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -7622,10 +7554,9 @@ FFF_END_EXTERN_C ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) -#define DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ...) \ +#define DECLARE_FAKE_VALUE_FUNC14_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -7644,14 +7575,14 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -7660,10 +7591,9 @@ FFF_END_EXTERN_C ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ...); -#define DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ...) \ +#define DEFINE_FAKE_VALUE_FUNC14_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -7783,16 +7713,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -7927,16 +7857,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -8079,16 +8009,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -8234,16 +8164,16 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -8365,11 +8295,10 @@ FFF_END_EXTERN_C ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) -#define DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ...) \ +#define DECLARE_FAKE_VALUE_FUNC19_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -8393,18 +8322,18 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -8414,11 +8343,10 @@ FFF_END_EXTERN_C ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ...); -#define DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ...) \ +#define DEFINE_FAKE_VALUE_FUNC19_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -8505,10 +8433,9 @@ FFF_END_EXTERN_C RETURN_TYPE ret; \ va_list ap; \ va_start(ap, arg17); \ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16, \ - arg17, ap); \ + ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap); \ va_end(ap); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \ @@ -8521,22 +8448,19 @@ FFF_END_EXTERN_C ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, \ ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ - DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ...) \ - DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ...) - -#define DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ARG18_TYPE, ...) \ + DECLARE_FAKE_VALUE_FUNC19_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ + ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, \ + ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ + DEFINE_FAKE_VALUE_FUNC19_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, \ + ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, \ + ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) + +#define DECLARE_FAKE_VALUE_FUNC20_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ typedef struct FUNCNAME##_Fake { \ DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \ DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \ @@ -8561,18 +8485,18 @@ FFF_END_EXTERN_C DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \ DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ - RETURN_TYPE (*custom_fake) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, va_list ap); \ - RETURN_TYPE (**custom_fake_seq) \ - (ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ - ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, \ - ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, \ - ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ - ARG18_TYPE arg18, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, custom_fake, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, va_list ap); \ + CUSTOM_FFF_FUNCTION_TEMPLATE(RETURN_TYPE, *custom_fake_seq, ARG0_TYPE, ARG1_TYPE, \ + ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, \ + ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, \ + ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, \ + ARG18_TYPE, va_list ap); \ } FUNCNAME##_Fake; \ extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ @@ -8583,11 +8507,10 @@ FFF_END_EXTERN_C ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, \ ARG18_TYPE arg18, ...); -#define DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, \ - ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, \ - ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ - ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, \ - ARG17_TYPE, ARG18_TYPE, ...) \ +#define DEFINE_FAKE_VALUE_FUNC20_VARARG( \ + RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, \ + ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, \ + ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FFF_GCC_FUNCTION_ATTRIBUTES FUNCNAME( \ ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, \ @@ -8679,10 +8602,9 @@ FFF_END_EXTERN_C RETURN_TYPE ret; \ va_list ap; \ va_start(ap, arg18); \ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, \ - arg6, arg7, arg8, arg9, arg10, arg11, \ - arg12, arg13, arg14, arg15, arg16, \ - arg17, arg18, ap); \ + ret = FUNCNAME##_fake.custom_fake( \ + arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, \ + arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap); \ va_end(ap); \ SAVE_RET_HISTORY(FUNCNAME, ret); \ return ret; \