فهرست منبع

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.
Sudeep Mohanty 3 سال پیش
والد
کامیت
129e613f15

+ 2 - 2
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;
 }

+ 1 - 1
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;
 

+ 0 - 93
components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/include/freertos/portmacro_deprecated.h

@@ -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);
-}

+ 0 - 6
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

+ 0 - 94
components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos/portmacro_deprecated.h

@@ -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;
-}

+ 0 - 6
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

+ 0 - 93
components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro_deprecated.h

@@ -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);
-}

+ 11 - 0
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.