inc/c_util/tcall_dispatcher.h (42 lines of code) (raw):

// Copyright (C) Microsoft Corporation. All rights reserved. #ifndef TCALL_DISPATCHER_H #define TCALL_DISPATCHER_H #include "macro_utils/macro_utils.h" #include "c_pal/thandle_ll.h" #include "c_util/tcall_dispatcher_ll.h" #include "umock_c/umock_c_prod.h" /*TCALL_DISPATCHER is-a THANDLE.*/ /*given a type "T" TCALL_DISPATCHER(T) expands to the name of the type. */ #define TCALL_DISPATCHER(T) TCALL_DISPATCHER_LL(T) #define TCALL_DISPATCHER_CREATE_DECLARE(T) TCALL_DISPATCHER_LL_CREATE_DECLARE(T, T) #define TCALL_DISPATCHER_REGISTER_TARGET_DECLARE(T) TCALL_DISPATCHER_LL_REGISTER_TARGET_DECLARE(T, T) #define TCALL_DISPATCHER_UNREGISTER_TARGET_DECLARE(T) TCALL_DISPATCHER_LL_UNREGISTER_TARGET_DECLARE(T, T) #define TCALL_DISPATCHER_DISPATCH_CALL_DECLARE(T, ...) TCALL_DISPATCHER_LL_DISPATCH_CALL_DECLARE(T, T, __VA_ARGS__) #define TCALL_DISPATCHER_CREATE_DEFINE(T) TCALL_DISPATCHER_LL_CREATE_DEFINE(T, T) #define TCALL_DISPATCHER_REGISTER_TARGET_DEFINE(T) TCALL_DISPATCHER_LL_REGISTER_TARGET_DEFINE(T, T) #define TCALL_DISPATCHER_UNREGISTER_TARGET_DEFINE(T) TCALL_DISPATCHER_LL_UNREGISTER_TARGET_DEFINE(T, T) #define TCALL_DISPATCHER_DISPATCH_CALL_DEFINE(T, ...) TCALL_DISPATCHER_LL_DISPATCH_CALL_DEFINE(T, T, __VA_ARGS__) #define TCALL_DISPATCHER_FREE_DEFINE(T) TCALL_DISPATCHER_LL_FREE_DEFINE(T, T) #define TCALL_DISPATCHER_CREATE(C) TCALL_DISPATCHER_LL_CREATE(C) #define TCALL_DISPATCHER_REGISTER_TARGET(C) TCALL_DISPATCHER_LL_REGISTER_TARGET(C) #define TCALL_DISPATCHER_UNREGISTER_TARGET(C) TCALL_DISPATCHER_LL_UNREGISTER_TARGET(C) #define TCALL_DISPATCHER_DISPATCH_CALL(C) TCALL_DISPATCHER_LL_DISPATCH_CALL(C) #define TCALL_DISPATCHER_INITIALIZE(T) TCALL_DISPATCHER_LL_INITIALIZE(T) #define TCALL_DISPATCHER_ASSIGN(T) TCALL_DISPATCHER_LL_ASSIGN(T) #define TCALL_DISPATCHER_MOVE(T) TCALL_DISPATCHER_LL_MOVE(T) #define TCALL_DISPATCHER_INITIALIZE_MOVE(T) TCALL_DISPATCHER_LL_INITIALIZE_MOVE(T) #define TCALL_DISPATCHER_TARGET_HANDLE(T) TCALL_DISPATCHER_LL_TARGET_HANDLE(T) #define TCALL_DISPATCHER_TARGET_FUNC(T) TCALL_DISPATCHER_LL_TARGET_FUNC(T) /*macro to be used in headers*/ \ #define TCALL_DISPATCHER_TYPE_DECLARE(T, ...) \ /*hint: have TCALL_DISPATCHER_DEFINE_CALL_TYPE(T) before TCALL_DISPATCHER_TYPE_DECLARE */ \ /*hint: have THANDLE_TYPE_DECLARE(TCALL_DISPATCHER_TYPEDEF_NAME(T)) before TCALL_DISPATCHER_TYPE_DECLARE */ \ TCALL_DISPATCHER_CREATE_DECLARE(T) \ TCALL_DISPATCHER_REGISTER_TARGET_DECLARE(T) \ TCALL_DISPATCHER_UNREGISTER_TARGET_DECLARE(T) \ TCALL_DISPATCHER_DISPATCH_CALL_DECLARE(T, __VA_ARGS__) \ #define TCALL_DISPATCHER_TYPE_DEFINE(T, ...) \ /*hint: have THANDLE_TYPE_DEFINE(TCALL_DISPATCHER_TYPEDEF_NAME(T)) before TCALL_DISPATCHER_TYPE_DEFINE */ \ TCALL_DISPATCHER_FREE_DEFINE(T) \ TCALL_DISPATCHER_CREATE_DEFINE(T) \ TCALL_DISPATCHER_REGISTER_TARGET_DEFINE(T) \ TCALL_DISPATCHER_UNREGISTER_TARGET_DEFINE(T) \ TCALL_DISPATCHER_DISPATCH_CALL_DEFINE(T, __VA_ARGS__) \ #endif // TCALL_DISPATCHER_H