/*
 * Since at least FreeRTOS V7.5.3 uxTopUsedPriority is no longer
 * present in the kernel, so it has to be supplied by other means for
 * OpenOCD's threads awareness.
 *
 * Add this file to your project, and, if you're using --gc-sections,
 * ``--undefined=uxTopUsedPriority'' (or
 * ``-Wl,--undefined=uxTopUsedPriority'' when using gcc for final
 * linking) to your LDFLAGS; same with all the other symbols you need.
 */

#include "FreeRTOS.h"
#include "esp_attr.h"
#include "sdkconfig.h"

#ifdef __GNUC__
    #define USED    __attribute__( ( used ) )
#else
    #define USED
#endif

/*
 * This file is no longer needed as AFTER FreeRTOS V10.14.1 OpenOCD is fixed in the kernel.
 * #ifdef CONFIG_ESP32_DEBUG_OCDAWARE
 *   const int USED DRAM_ATTR uxTopUsedPriority = configMAX_PRIORITIES - 1;
 * #endif
 */
