1 /*! *********************************************************************************
2  * Copyright 2020, 2024 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  ********************************************************************************** */
7 #if !defined(__FSL_OS_ABSTRACTION_THREADX_H__)
8 #define __FSL_OS_ABSTRACTION_THREADX_H__
9 
10 #include "tx_api.h"
11 #include "fsl_component_generic_list.h"
12 
13 /*!
14  * @addtogroup os_abstraction_thread
15  * @{
16  */
17 
18 /*******************************************************************************
19  * Declarations
20  ******************************************************************************/
21 /*! @brief OSA task handle size. */
22 #define OSA_TASK_HANDLE_SIZE (sizeof(TX_THREAD) + sizeof(list_element_t))
23 
24 /*! @brief OSA event handle size. */
25 #define OSA_EVENT_HANDLE_SIZE (sizeof(TX_EVENT_FLAGS_GROUP) + sizeof(uint8_t))
26 
27 /*! @brief OSA semaphore handle size. */
28 #define OSA_SEM_HANDLE_SIZE sizeof(TX_SEMAPHORE)
29 
30 /*! @brief OSA mutex handle size. */
31 #define OSA_MUTEX_HANDLE_SIZE sizeof(TX_MUTEX)
32 
33 /*! @brief OSA queue handle size. */
34 #define OSA_MSGQ_HANDLE_SIZE sizeof(TX_QUEUE)
35 
36 /*! @brief OSA timer handle size. */
37 #define OSA_TIMER_HANDLE_SIZE (sizeof(TX_TIMER) + 2 * sizeof(int))
38 
39 /*!
40  * @brief To provide unified task priority for upper layer, OSA layer makes conversion.
41  */
42 
43 #define PRIORITY_OSA_TO_THREAD(osa_prio) \
44     (((TX_MAX_PRIORITIES - 1U) * osa_prio) / (OSA_TASK_PRIORITY_MIN - OSA_TASK_PRIORITY_MAX))
45 #define PRIORITY_THREAD_TO_OSA(rtos_prio)                                               \
46     ((rtos_prio * ((OSA_TASK_PRIORITY_MIN - OSA_TASK_PRIORITY_MAX)) )/ \
47      (TX_MAX_PRIORITIES - 1U))
48 
49 #endif /* __FSL_OS_ABSTRACTION_THREADX_H__ */
50