From 129e613f15db5dbdd30c623929da0c02b61277cc Mon Sep 17 00:00:00 2001 From: Sudeep Mohanty Date: Thu, 31 Mar 2022 15:56:53 +0530 Subject: [PATCH] freertos: remove portmacro_deprtecated.h file This commit removes the portmacro_deprecated.h file and the deprecated APIs contained in it. Alternate APIs to use are noted in the migration guide. --- components/app_trace/app_trace_util.c | 4 +- .../app_trace/include/esp_app_trace_util.h | 2 +- .../include/freertos/portmacro_deprecated.h | 93 ------------------ .../riscv/include/freertos/portmacro.h | 6 -- .../include/freertos/portmacro_deprecated.h | 94 ------------------- .../xtensa/include/freertos/portmacro.h | 6 -- .../include/freertos/portmacro_deprecated.h | 93 ------------------ docs/en/migration-guides/freertos.rst | 11 +++ 8 files changed, 14 insertions(+), 295 deletions(-) delete mode 100644 components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/include/freertos/portmacro_deprecated.h delete mode 100644 components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro_deprecated.h delete mode 100644 components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro_deprecated.h diff --git a/components/app_trace/app_trace_util.c b/components/app_trace/app_trace_util.c index 9d9e232748..6b72b607d5 100644 --- a/components/app_trace/app_trace_util.c +++ b/components/app_trace/app_trace_util.c @@ -63,7 +63,7 @@ esp_err_t esp_apptrace_lock_take(esp_apptrace_lock_t *lock, esp_apptrace_tmo_t * //Todo: Replace the current locking mechanism and int_state with portTRY_ENTER_CRITICAL() instead. // do not overwrite lock->int_state before we actually acquired the mux unsigned int_state = portSET_INTERRUPT_MASK_FROM_ISR(); - bool success = vPortCPUAcquireMutexTimeout(&lock->mux, 0); + bool success = spinlock_acquire(&lock->mux, 0); if (success) { lock->int_state = int_state; return ESP_OK; @@ -84,7 +84,7 @@ esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock) unsigned int_state = lock->int_state; // after call to the following func we can not be sure that lock->int_state // is not overwritten by other CPU who has acquired the mux just after we released it. See esp_apptrace_lock_take(). - vPortCPUReleaseMutex(&lock->mux); + spinlock_release(&lock->mux); portCLEAR_INTERRUPT_MASK_FROM_ISR(int_state); return ESP_OK; } diff --git a/components/app_trace/include/esp_app_trace_util.h b/components/app_trace/include/esp_app_trace_util.h index 96595c6982..da2ee57668 100644 --- a/components/app_trace/include/esp_app_trace_util.h +++ b/components/app_trace/include/esp_app_trace_util.h @@ -57,7 +57,7 @@ static inline uint32_t esp_apptrace_tmo_remaining_us(esp_apptrace_tmo_t *tmo) /** Tracing module synchronization lock */ typedef struct { - portMUX_TYPE mux; + spinlock_t mux; unsigned int_state; } esp_apptrace_lock_t; diff --git a/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/include/freertos/portmacro_deprecated.h b/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/include/freertos/portmacro_deprecated.h deleted file mode 100644 index 4b3379a6fc..0000000000 --- a/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/include/freertos/portmacro_deprecated.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* ---------------------------------------------------- Deprecate ------------------------------------------------------ - * - Macros or functions that should be deprecated in v5.0, then removed in the next major release - * - Kept as not to cause a breaking change - * - Include this header at the end of portmacro.h - * ------------------------------------------------------------------------------------------------------------------ */ - -/** - * @brief Disable interrupts in a nested manner - * - * Does the exact same thing as portSET_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portSET_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline __attribute__((always_inline, deprecated)) UBaseType_t portENTER_CRITICAL_NESTED(void) { - return portSET_INTERRUPT_MASK_FROM_ISR(); -} - -/** - * @brief Reenables interrupts in a nested manner - * - * Does the exact same thing as portCLEAR_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portCLEAR_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline void __attribute__((always_inline, deprecated)) portEXIT_CRITICAL_NESTED(UBaseType_t prev_level) -{ - portCLEAR_INTERRUPT_MASK_FROM_ISR(prev_level); -} - -/* ---------------------- Spinlocks --------------------- */ - -/** - * @brief Initialize a spinlock - * - * Does the exact same thing as spinlock_initialize(); - * - * @deprecated This function is deprecated. Call spinlock_initialize() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((always_inline, deprecated)) vPortCPUInitializeMutex(portMUX_TYPE *mux) -{ - spinlock_initialize(mux); -} - -/** - * @brief Acquire a spinlock - * - * Does the exact same thing as spinlock_acquire() with unlimited timeout - * - * @deprecated This function is deprecated. Call spinlock_acquire() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((always_inline, deprecated)) vPortCPUAcquireMutex(portMUX_TYPE *mux) -{ - spinlock_acquire(mux, portMUX_NO_TIMEOUT); -} - -/** - * @brief Acquire a spinlock - * - * Does the exact same thing as spinlock_acquire() with a specified timeout - * - * @deprecated This function is deprecated. Call spinlock_acquire() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - * @param timeout - * @return true Spinlock acquired - * @return false Timed out - */ -static inline bool __attribute__((always_inline)) vPortCPUAcquireMutexTimeout(portMUX_TYPE *mux, int timeout) -{ - return (spinlock_acquire(mux, timeout)); -} - -/** - * @brief Release a spinlock - * - * Does the exact same thing as spinlock_release() - * - * @deprecated This function is deprecated. Call spinlock_release() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - */ -static inline void __attribute__((always_inline)) vPortCPUReleaseMutex(portMUX_TYPE *mux) -{ - spinlock_release(mux); -} diff --git a/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro.h b/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro.h index f7cacfbb5e..253540b61d 100644 --- a/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro.h +++ b/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro.h @@ -508,12 +508,6 @@ extern int xPortSwitchFlag; #define UNTESTED_FUNCTION() #endif -/* ---------------------------------------------------- Deprecate ------------------------------------------------------ - * - Pull in header containing deprecated macros here - * ------------------------------------------------------------------------------------------------------------------ */ - -#include "portmacro_deprecated.h" - #ifdef __cplusplus } #endif diff --git a/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro_deprecated.h b/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro_deprecated.h deleted file mode 100644 index 71ddb3f746..0000000000 --- a/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro_deprecated.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* ---------------------------------------------------- Deprecate ------------------------------------------------------ - * - Macros or functions that should be deprecated in v5.0, then removed in the next major release - * - Kept as not to cause a breaking change - * - Include this header at the end of portmacro.h - * ------------------------------------------------------------------------------------------------------------------ */ - -/** - * @brief Disable interrupts in a nested manner - * - * Does the exact same thing as portSET_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portSET_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline __attribute__((deprecated)) UBaseType_t portENTER_CRITICAL_NESTED(void) { - return (UBaseType_t) portSET_INTERRUPT_MASK_FROM_ISR(); -} - -/** - * @brief Reenables interrupts in a nested manner - * - * Does the exact same thing as portCLEAR_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portCLEAR_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline void __attribute__((deprecated)) portEXIT_CRITICAL_NESTED(UBaseType_t prev_level) -{ - portCLEAR_INTERRUPT_MASK_FROM_ISR((int) prev_level); -} - -/* ---------------------- Spinlocks --------------------- */ - -/** - * @brief Deprecated placed holder function to initialize a spinlock - * - * Currently does nothing. - * - * @deprecated This function is deprecated. If on multi-core, use spinlock_initialize() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((deprecated)) __attribute__((always_inline)) vPortCPUInitializeMutex(portMUX_TYPE *mux) -{ - (void)mux; -} - -/** - * @brief Deprecated placed holder function to acquire a spinlock - * - * Currently does nothing. - * - * @deprecated This function is deprecated. If on multi-core, use spinlock_acquire() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((deprecated)) __attribute__((always_inline)) vPortCPUAcquireMutex(portMUX_TYPE *mux) -{ - (void)mux; -} - -/** - * @brief Deprecated placed holder function to acquire a spinlock but with a specified timeout - * - * Currently just returns true - * - * @deprecated This function is deprecated. If on multi-core, use spinlock_acquire() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - * @param[in] timeout Timeout in number of CPU cycles - * @return true Always returns true - */ -static inline bool __attribute__((always_inline)) vPortCPUAcquireMutexTimeout(portMUX_TYPE *mux, int timeout_cycles) -{ - (void)mux; - (void)timeout_cycles; - return true; -} - -/** - * @brief Deprecated placed holder function to release a spinlock - * - * Currently does nothing. - * - * @deprecated This function is deprecated. If on multi-core, use spinlock_release() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - */ -static inline void __attribute__((always_inline)) vPortCPUReleaseMutex(portMUX_TYPE *mux) -{ - (void)mux; -} diff --git a/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h b/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h index 065580440d..5d0d7e2f1d 100644 --- a/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h +++ b/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h @@ -761,12 +761,6 @@ extern uint32_t port_switch_flag[]; #define UNTESTED_FUNCTION() #endif -/* ---------------------------------------------------- Deprecate ------------------------------------------------------ - * - Pull in header containing deprecated macros here - * ------------------------------------------------------------------------------------------------------------------ */ - -#include "portmacro_deprecated.h" - #ifdef __cplusplus } #endif diff --git a/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro_deprecated.h b/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro_deprecated.h deleted file mode 100644 index 378617c73a..0000000000 --- a/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro_deprecated.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* ---------------------------------------------------- Deprecate ------------------------------------------------------ - * - Macros or functions that should be deprecated in v5.0, then removed in the next major release - * - Kept as not to cause a breaking change - * - Include this header at the end of portmacro.h - * ------------------------------------------------------------------------------------------------------------------ */ - -/** - * @brief Disable interrupts in a nested manner - * - * Does the exact same thing as portSET_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portSET_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline __attribute__((deprecated)) UBaseType_t portENTER_CRITICAL_NESTED(void) { - return portSET_INTERRUPT_MASK_FROM_ISR(); -} - -/** - * @brief Reenables interrupts in a nested manner - * - * Does the exact same thing as portCLEAR_INTERRUPT_MASK_FROM_ISR() - * - * @deprecated This function is deprecated. Call portCLEAR_INTERRUPT_MASK_FROM_ISR() instead - */ -static inline void __attribute__((deprecated)) portEXIT_CRITICAL_NESTED(UBaseType_t prev_level) -{ - portCLEAR_INTERRUPT_MASK_FROM_ISR(prev_level); -} - -/* ---------------------- Spinlocks --------------------- */ - -/** - * @brief Initialize a spinlock - * - * Does the exact same thing as spinlock_initialize(); - * - * @deprecated This function is deprecated. Call spinlock_initialize() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((deprecated)) __attribute__((always_inline)) vPortCPUInitializeMutex(portMUX_TYPE *mux) -{ - spinlock_initialize(mux); -} - -/** - * @brief Acquire a spinlock - * - * Does the exact same thing as spinlock_acquire() with unlimited timeout - * - * @deprecated This function is deprecated. Call spinlock_acquire() instead - * @param[in] mux Spinlock - */ -static inline void __attribute__((deprecated)) __attribute__((always_inline)) vPortCPUAcquireMutex(portMUX_TYPE *mux) -{ - spinlock_acquire(mux, portMUX_NO_TIMEOUT); -} - -/** - * @brief Acquire a spinlock - * - * Does the exact same thing as spinlock_acquire() with a specified timeout - * - * @deprecated This function is deprecated. Call spinlock_acquire() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - * @param timeout - * @return true Spinlock acquired - * @return false Timed out - */ -static inline bool __attribute__((always_inline)) vPortCPUAcquireMutexTimeout(portMUX_TYPE *mux, int timeout) -{ - return (spinlock_acquire(mux, timeout)); -} - -/** - * @brief Release a spinlock - * - * Does the exact same thing as spinlock_release() - * - * @deprecated This function is deprecated. Call spinlock_release() instead - * @note Does not have deprecated attribute due to usage in app_trace_util.c - * @param[in] mux Spinlock - */ -static inline void __attribute__((always_inline)) vPortCPUReleaseMutex(portMUX_TYPE *mux) -{ - spinlock_release(mux); -} diff --git a/docs/en/migration-guides/freertos.rst b/docs/en/migration-guides/freertos.rst index d2610241e7..5aab155c47 100644 --- a/docs/en/migration-guides/freertos.rst +++ b/docs/en/migration-guides/freertos.rst @@ -18,3 +18,14 @@ The header ``task_snapshot.h`` has been removed from ``freertos/task.h``. ESP-ID FreeRTOS Asserts ---------------- Previously FreeRTOS asserts were configured separately from the rest of the system using the `FREERTOS_ASSERT` kconfig option. This option has now been removed and the configuration is now done through `COMPILER_OPTIMIZATION_ASSERTION_LEVEL`. + +Port Macro APIs +--------------- +The file ``portmacro_deprecated.h`` which was added to maintain backward compatibility for deprecated APIs is removed. Users are advised to use the alternate functions for the deprecated APIs as listed below: + +- ``portENTER_CRITICAL_NESTED()`` is removed. Users should use the ``portSET_INTERRUPT_MASK_FROM_ISR()`` macro instead. +- ``portEXIT_CRITICAL_NESTED()`` is removed. Users should use the ``portCLEAR_INTERRUPT_MASK_FROM_ISR()`` macro instead. +- ``vPortCPUInitializeMutex()`` is removed. Users should use the ``spinlock_initialize()`` function instead. +- ``vPortCPUAcquireMutex()`` is removed. Users should use the ``spinlock_acquire()`` function instead. +- ``vPortCPUAcquireMutexTimeout()`` is removed. Users should use the ``spinlock_acquire()`` function instead. +- ``vPortCPUReleaseMutex()`` is removed. Users should use the ``spinlock_release()`` function instead.