2024-01-06 17:21:06 +01:00

65 lines
1.3 KiB
C++

/**
* @file
* @brief Constants and macros for use with CMSIS RTOS2.
*/
#ifndef STA_RTOS_DEFS_HPP
#define STA_RTOS_DEFS_HPP
/**
* @defgroup STA_RTOS RTOS
* @brief STA RTOS library.
*/
/**
* @defgroup STA_RTOS_API API
* @ingroup STA_RTOS
* @brief Public interface.
*/
/**
* @defgroup STA_RTOS_BuildConfig Build config
* @ingroup STA_RTOS
* @brief Build configuration options.
*/
/**
* @defgroup STA_RTOS_IPC Interprocess communication
* @ingroup STA_RTOS_API
* @brief Classes for interprocess communication.
*/
/**
* @defgroup STA_RTOS_SYNC Process synchronization
* @ingroup STA_RTOS_API
* @brief Classes for process synchronization.
*/
/**
* @ingroup STA_RTOS_API
* @{
*/
// See limits defined in cmsis_os2.c
/**
* @brief Number of usable bits in task notification flags.
*/
#define STA_RTOS_MAX_BITS_THREAD_NOTIFY 31U
/**
* @brief Number of usable bits in event group flags.
*/
#define STA_RTOS_MAX_BITS_EVENT_GROUPS 24U
/**
* @brief Mask for valid task notification flag bits.
*/
#define STA_RTOS_THREAD_FLAGS_VALID_BITS ( ( 1UL << STA_RTOS_MAX_BITS_THREAD_NOTIFY ) - 1U )
/**
* @brief Mask for valid event group flag bits.
*/
#define STA_RTOS_EVENT_FLAGS_VALID_BITS ( ( 1UL << STA_RTOS_MAX_BITS_EVENT_GROUPS ) - 1U )
/** @} */
#endif // STA_RTOS_DEFS_HPP