mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-20 00:36:01 -04:00
Merge branch 'feature/freertos_expose_list_integrity_check_option' into 'master'
feat(freertos): Exposed Kconfig option for configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES Closes IDF-8366 See merge request espressif/esp-idf!26960
This commit is contained in:
commit
bf237a2bd4
@ -720,7 +720,7 @@ bool test_event_on_timer_alarm(gptimer_handle_t timer, const gptimer_alarm_event
|
|||||||
TEST_CASE("can post events from interrupt handler", "[event][intr]")
|
TEST_CASE("can post events from interrupt handler", "[event][intr]")
|
||||||
{
|
{
|
||||||
/* Lazy allocated resources in gptimer/intr_alloc */
|
/* Lazy allocated resources in gptimer/intr_alloc */
|
||||||
unity_utils_set_leak_level(150);
|
unity_utils_set_leak_level(160);
|
||||||
|
|
||||||
TEST_ESP_OK(esp_event_loop_create_default());
|
TEST_ESP_OK(esp_event_loop_create_default());
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
|
||||||
// Some resources are lazy allocated, the threshold is left for that case
|
// Some resources are lazy allocated, the threshold is left for that case
|
||||||
#define TEST_MEMORY_LEAK_THRESHOLD (-800)
|
#define TEST_MEMORY_LEAK_THRESHOLD (-900)
|
||||||
|
|
||||||
static size_t before_free_8bit;
|
static size_t before_free_8bit;
|
||||||
static size_t before_free_32bit;
|
static size_t before_free_32bit;
|
||||||
|
@ -9,7 +9,11 @@
|
|||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
/* Macros used instead ofsetoff() for better performance of interrupt handler */
|
/* Macros used instead ofsetoff() for better performance of interrupt handler */
|
||||||
|
#if CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES
|
||||||
|
#define PORT_OFFSET_PX_STACK 0x40
|
||||||
|
#else
|
||||||
#define PORT_OFFSET_PX_STACK 0x30
|
#define PORT_OFFSET_PX_STACK 0x30
|
||||||
|
#endif /* #if CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES */
|
||||||
#define PORT_OFFSET_PX_END_OF_STACK (PORT_OFFSET_PX_STACK + \
|
#define PORT_OFFSET_PX_END_OF_STACK (PORT_OFFSET_PX_STACK + \
|
||||||
/* void * pxDummy6 */ 4 + \
|
/* void * pxDummy6 */ 4 + \
|
||||||
/* BaseType_t xDummy23[ 2 ] */ 8 + \
|
/* BaseType_t xDummy23[ 2 ] */ 8 + \
|
||||||
|
@ -37,7 +37,11 @@
|
|||||||
#include "freertos/FreeRTOSConfig.h"
|
#include "freertos/FreeRTOSConfig.h"
|
||||||
|
|
||||||
/* Macros used instead ofsetoff() for better performance of interrupt handler */
|
/* Macros used instead ofsetoff() for better performance of interrupt handler */
|
||||||
|
#if CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES
|
||||||
|
#define PORT_OFFSET_PX_STACK 0x40
|
||||||
|
#else
|
||||||
#define PORT_OFFSET_PX_STACK 0x30
|
#define PORT_OFFSET_PX_STACK 0x30
|
||||||
|
#endif /* #if CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES */
|
||||||
#define PORT_OFFSET_PX_END_OF_STACK (PORT_OFFSET_PX_STACK + \
|
#define PORT_OFFSET_PX_END_OF_STACK (PORT_OFFSET_PX_STACK + \
|
||||||
/* void * pxDummy6 */ 4 + \
|
/* void * pxDummy6 */ 4 + \
|
||||||
/* uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ] */ CONFIG_FREERTOS_MAX_TASK_NAME_LEN + \
|
/* uint8_t ucDummy7[ configMAX_TASK_NAME_LEN ] */ CONFIG_FREERTOS_MAX_TASK_NAME_LEN + \
|
||||||
|
@ -224,6 +224,13 @@ menu "FreeRTOS"
|
|||||||
``vTaskList()`` and ``vTaskGetRunTimeStats()`` functions in the build (see
|
``vTaskList()`` and ``vTaskGetRunTimeStats()`` functions in the build (see
|
||||||
configUSE_STATS_FORMATTING_FUNCTIONS documentation for more details).
|
configUSE_STATS_FORMATTING_FUNCTIONS documentation for more details).
|
||||||
|
|
||||||
|
config FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES
|
||||||
|
bool "configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES"
|
||||||
|
#TODO: Enable by default for debug builds (IDF-8517)
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Enable list integrity checker (see configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES documentation for more details).
|
||||||
|
|
||||||
config FREERTOS_VTASKLIST_INCLUDE_COREID
|
config FREERTOS_VTASKLIST_INCLUDE_COREID
|
||||||
# Core affinity is supported in stats for Amazon FreeRTOS SMP by default
|
# Core affinity is supported in stats for Amazon FreeRTOS SMP by default
|
||||||
bool "Enable display of xCoreID in vTaskList"
|
bool "Enable display of xCoreID in vTaskList"
|
||||||
|
@ -251,6 +251,9 @@
|
|||||||
#endif /* CONFIG_FREERTOS_SMP */
|
#endif /* CONFIG_FREERTOS_SMP */
|
||||||
#endif /* def __ASSEMBLER__ */
|
#endif /* def __ASSEMBLER__ */
|
||||||
|
|
||||||
|
/* -------------- List Data Integrity Checks --------------- */
|
||||||
|
#define configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES
|
||||||
|
|
||||||
/* ----------------------------------------------- Amazon SMP FreeRTOS -------------------------------------------------
|
/* ----------------------------------------------- Amazon SMP FreeRTOS -------------------------------------------------
|
||||||
* - All Amazon SMP FreeRTOS specific configurations
|
* - All Amazon SMP FreeRTOS specific configurations
|
||||||
* ------------------------------------------------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------------------------------------------------ */
|
||||||
|
@ -17,3 +17,4 @@ CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64=y
|
|||||||
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
CONFIG_FREERTOS_FPU_IN_ISR=y
|
CONFIG_FREERTOS_FPU_IN_ISR=y
|
||||||
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=2
|
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=2
|
||||||
|
CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES=y
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include_next <sys/lock.h>
|
#include_next <sys/lock.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
#ifdef _RETARGETABLE_LOCKING
|
#ifdef _RETARGETABLE_LOCKING
|
||||||
|
|
||||||
@ -13,15 +14,19 @@
|
|||||||
* The size here should be sufficient for a FreeRTOS mutex.
|
* The size here should be sufficient for a FreeRTOS mutex.
|
||||||
* This is checked by a static assertion in locks.c
|
* This is checked by a static assertion in locks.c
|
||||||
*
|
*
|
||||||
* Note 1: this might need to be made dependent on whether FreeRTOS
|
* Note: this might need to be made dependent on whether FreeRTOS
|
||||||
* is included in the build.
|
* is included in the build.
|
||||||
*
|
|
||||||
* Note 2: the size is made sufficient for the case when
|
|
||||||
* configUSE_TRACE_FACILITY is enabled. If it is disabled,
|
|
||||||
* this definition wastes 8 bytes.
|
|
||||||
*/
|
*/
|
||||||
struct __lock {
|
struct __lock {
|
||||||
|
#if (CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES && CONFIG_FREERTOS_USE_TRACE_FACILITY)
|
||||||
|
int reserved[29];
|
||||||
|
#elif (CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES && !CONFIG_FREERTOS_USE_TRACE_FACILITY)
|
||||||
|
int reserved[27];
|
||||||
|
#elif (!CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES && CONFIG_FREERTOS_USE_TRACE_FACILITY)
|
||||||
int reserved[23];
|
int reserved[23];
|
||||||
|
#else
|
||||||
|
int reserved[21];
|
||||||
|
#endif /* #if (CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES && CONFIG_FREERTOS_USE_TRACE_FACILITY) */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Compatibility definitions for the legacy ESP-specific locking implementation.
|
/* Compatibility definitions for the legacy ESP-specific locking implementation.
|
||||||
|
@ -22,7 +22,7 @@ typedef struct crypto_bignum crypto_bignum;
|
|||||||
|
|
||||||
TEST_CASE("Test crypto lib bignum apis", "[wpa_crypto]")
|
TEST_CASE("Test crypto lib bignum apis", "[wpa_crypto]")
|
||||||
{
|
{
|
||||||
set_leak_threshold(250);
|
set_leak_threshold(300);
|
||||||
{
|
{
|
||||||
|
|
||||||
uint8_t buf[32], buf2[32];
|
uint8_t buf[32], buf2[32];
|
||||||
|
@ -34,7 +34,7 @@ extern size_t dpp_nonce_override_len;
|
|||||||
|
|
||||||
TEST_CASE("Test vectors DPP responder p256", "[wpa_dpp]")
|
TEST_CASE("Test vectors DPP responder p256", "[wpa_dpp]")
|
||||||
{
|
{
|
||||||
set_leak_threshold(120);
|
set_leak_threshold(130);
|
||||||
/* Global variables */
|
/* Global variables */
|
||||||
char command[1200] = {0};
|
char command[1200] = {0};
|
||||||
const u8 *frame;
|
const u8 *frame;
|
||||||
|
@ -55,7 +55,7 @@ extern const wifi_osi_funcs_t *wifi_funcs;
|
|||||||
/* Check if eloop runs its timers correctly & in correct order */
|
/* Check if eloop runs its timers correctly & in correct order */
|
||||||
TEST_CASE("Test eloop timers run", "[eloop]")
|
TEST_CASE("Test eloop timers run", "[eloop]")
|
||||||
{
|
{
|
||||||
set_leak_threshold(800);
|
set_leak_threshold(1000);
|
||||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||||
cfg.nvs_enable = false;
|
cfg.nvs_enable = false;
|
||||||
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
|
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
TEST_CASE("Test pbkdf2", "[crypto-pbkdf2]")
|
TEST_CASE("Test pbkdf2", "[crypto-pbkdf2]")
|
||||||
{
|
{
|
||||||
set_leak_threshold(120);
|
set_leak_threshold(130);
|
||||||
|
|
||||||
uint8_t PMK[PMK_LEN];
|
uint8_t PMK[PMK_LEN];
|
||||||
uint8_t ssid_len;
|
uint8_t ssid_len;
|
||||||
|
@ -48,7 +48,7 @@ void wpabuf_free2(struct wpabuf *buf)
|
|||||||
|
|
||||||
TEST_CASE("Test SAE functionality with ECC group", "[wpa3_sae]")
|
TEST_CASE("Test SAE functionality with ECC group", "[wpa3_sae]")
|
||||||
{
|
{
|
||||||
set_leak_threshold(120);
|
set_leak_threshold(400);
|
||||||
ESP_LOGI("SAE Test", "### Beginning SAE init and deinit ###");
|
ESP_LOGI("SAE Test", "### Beginning SAE init and deinit ###");
|
||||||
{
|
{
|
||||||
/* Test init and deinit*/
|
/* Test init and deinit*/
|
||||||
|
@ -4,3 +4,4 @@ CONFIG_COMPILER_WARN_WRITE_STRINGS=y
|
|||||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||||
CONFIG_COMPILER_STACK_CHECK_MODE_STRONG=y
|
CONFIG_COMPILER_STACK_CHECK_MODE_STRONG=y
|
||||||
CONFIG_COMPILER_STACK_CHECK=y
|
CONFIG_COMPILER_STACK_CHECK=y
|
||||||
|
CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES=y
|
||||||
|
Loading…
Reference in New Issue
Block a user