Merge pull request #10801 from gschorcht/esp32_fix_memset_opt
cpu/esp32: fixes the memset optimization problem in esp_wifi/wpa_supplicant
This commit is contained in:
commit
f91f62155d
@ -23,6 +23,7 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "esp_common.h"
|
||||
@ -61,6 +62,9 @@ void system_wdt_stop (void);
|
||||
/** reset the system watchdog timer */
|
||||
void system_wdt_feed (void);
|
||||
|
||||
/** memset version that the compiler should not be allowed to optimize this */
|
||||
void *system_secure_memset(void *s, int c, size_t n);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -595,3 +595,18 @@ void system_wdt_start (void)
|
||||
TIMERG0.wdt_wprotect = 0; /* enable write protection */
|
||||
xt_ints_on(BIT(CPU_INUM_WDT));
|
||||
}
|
||||
|
||||
__attribute__((weak)) void
|
||||
_system_prevent_memset_lto(void *const s, int c, const size_t n)
|
||||
{
|
||||
(void) s;
|
||||
(void) c;
|
||||
(void) n;
|
||||
}
|
||||
|
||||
void *system_secure_memset(void *s, int c, size_t n)
|
||||
{
|
||||
memset(s, c, n);
|
||||
_system_prevent_memset_lto(s, c, n);
|
||||
return s;
|
||||
}
|
||||
|
||||
@ -19,6 +19,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef RIOT_VERSION
|
||||
#include "syscalls.h"
|
||||
#define os_memset system_secure_memset
|
||||
#endif
|
||||
|
||||
#include "esp_types.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user