common/inc/c_pal/tqueue.h (42 lines of code) (raw):

// Copyright (C) Microsoft Corporation. All rights reserved. #ifndef TQUEUE_H #define TQUEUE_H #include "macro_utils/macro_utils.h" #include "c_pal/thandle_ll.h" #include "c_pal/tqueue_ll.h" #include "umock_c/umock_c_prod.h" /*TQUEUE is-a THANDLE.*/ /*given a type "T" TQUEUE(T) expands to the name of the type. */ #define TQUEUE(T) TQUEUE_LL(T) #define TQUEUE_CREATE_DECLARE(T) TQUEUE_LL_CREATE_DECLARE(T, T) #define TQUEUE_PUSH_DECLARE(T) TQUEUE_LL_PUSH_DECLARE(T, T) #define TQUEUE_POP_DECLARE(T) TQUEUE_LL_POP_DECLARE(T, T) #define TQUEUE_GET_VOLATILE_COUNT_DECLARE(T) TQUEUE_LL_GET_VOLATILE_COUNT_DECLARE(T, T) #define TQUEUE_CREATE_DEFINE(T) TQUEUE_LL_CREATE_DEFINE(T, T) #define TQUEUE_PUSH_DEFINE(T) TQUEUE_LL_PUSH_DEFINE(T, T) #define TQUEUE_POP_DEFINE(T) TQUEUE_LL_POP_DEFINE(T, T) #define TQUEUE_GET_VOLATILE_COUNT_DEFINE(T) TQUEUE_LL_GET_VOLATILE_COUNT_DEFINE(T, T) #define TQUEUE_FREE_DEFINE(T) TQUEUE_LL_FREE_DEFINE(T, T) #define TQUEUE_CREATE(C) TQUEUE_LL_CREATE(C) #define TQUEUE_PUSH(C) TQUEUE_LL_PUSH(C) #define TQUEUE_POP(C) TQUEUE_LL_POP(C) #define TQUEUE_GET_VOLATILE_COUNT(C) TQUEUE_LL_GET_VOLATILE_COUNT(C) #define TQUEUE_INITIALIZE(T) TQUEUE_LL_INITIALIZE(T) #define TQUEUE_ASSIGN(T) TQUEUE_LL_ASSIGN(T) #define TQUEUE_MOVE(T) TQUEUE_LL_MOVE(T) #define TQUEUE_INITIALIZE_MOVE(T) TQUEUE_LL_INITIALIZE_MOVE(T) #define TQUEUE_TARGET_HANDLE(T) TQUEUE_LL_TARGET_HANDLE(T) #define TQUEUE_TARGET_FUNC(T) TQUEUE_LL_TARGET_FUNC(T) /*macro to be used in headers*/ \ #define TQUEUE_TYPE_DECLARE(T, ...) \ /*hint: have TQUEUE_DEFINE_TYPE(T) before TQUEUE_TYPE_DECLARE */ \ /*hint: have THANDLE_TYPE_DECLARE(TQUEUE_TYPEDEF_NAME(T)) before TQUEUE_TYPE_DECLARE */ \ TQUEUE_CREATE_DECLARE(T) \ TQUEUE_PUSH_DECLARE(T) \ TQUEUE_POP_DECLARE(T) \ TQUEUE_GET_VOLATILE_COUNT_DECLARE(T) \ #define TQUEUE_TYPE_DEFINE(T, ...) \ /*hint: have THANDLE_TYPE_DEFINE(TQUEUE_TYPEDEF_NAME(T)) before TQUEUE_TYPE_DEFINE */ \ TQUEUE_FREE_DEFINE(T) \ TQUEUE_CREATE_DEFINE(T) \ TQUEUE_PUSH_DEFINE(T) \ TQUEUE_POP_DEFINE(T) \ TQUEUE_GET_VOLATILE_COUNT_DEFINE(T) \ #endif // TQUEUE_H