Merge branch 'fix/update_os_time_struct_v5.3' into 'release/v5.3'

Modifying os_time_t datatype for platform and compiler independence

See merge request espressif/esp-idf!36718
This commit is contained in:
Jiang Jiang Jian
2025-04-25 18:01:07 +08:00
4 changed files with 35 additions and 32 deletions

View File

@ -938,7 +938,7 @@ typedef struct {
uint8_t ssid_len; /**< SSID length of connected AP */ uint8_t ssid_len; /**< SSID length of connected AP */
uint8_t bssid[6]; /**< BSSID of connected AP*/ uint8_t bssid[6]; /**< BSSID of connected AP*/
uint8_t channel; /**< Channel of connected AP*/ uint8_t channel; /**< Channel of connected AP*/
wifi_auth_mode_t authmode;/**< Authentication mode used by AP*/ wifi_auth_mode_t authmode;/**< Authentication mode used by the connection*/
uint16_t aid; /**< Authentication id assigned by the connected AP */ uint16_t aid; /**< Authentication id assigned by the connected AP */
} wifi_event_sta_connected_t; } wifi_event_sta_connected_t;

View File

@ -24,7 +24,8 @@
#include "esp_private/esp_wifi_private.h" #include "esp_private/esp_wifi_private.h"
#include "esp_wifi.h" #include "esp_wifi.h"
typedef time_t os_time_t; /* Modifying datatype for platform and compiler independence */
typedef uint64_t os_time_t;
/** /**
* os_sleep - Sleep (sec, usec) * os_sleep - Sleep (sec, usec)
@ -34,8 +35,8 @@ typedef time_t os_time_t;
void os_sleep(os_time_t sec, os_time_t usec); void os_sleep(os_time_t sec, os_time_t usec);
struct os_time { struct os_time {
os_time_t sec; os_time_t sec;
suseconds_t usec; suseconds_t usec;
}; };
#define os_reltime os_time #define os_reltime os_time
@ -60,17 +61,17 @@ int os_get_time(struct os_time *t);
/* Helper macros for handling struct os_time */ /* Helper macros for handling struct os_time */
#define os_time_before(a, b) \ #define os_time_before(a, b) \
((a)->sec < (b)->sec || \ ((a)->sec < (b)->sec || \
((a)->sec == (b)->sec && (a)->usec < (b)->usec)) ((a)->sec == (b)->sec && (a)->usec < (b)->usec))
#define os_reltime_before os_time_before #define os_reltime_before os_time_before
#define os_time_sub(a, b, res) do { \ #define os_time_sub(a, b, res) do { \
(res)->sec = (a)->sec - (b)->sec; \ (res)->sec = (a)->sec - (b)->sec; \
(res)->usec = (a)->usec - (b)->usec; \ (res)->usec = (a)->usec - (b)->usec; \
if ((res)->usec < 0) { \ if ((res)->usec < 0) { \
(res)->sec--; \ (res)->sec--; \
(res)->usec += 1000000; \ (res)->usec += 1000000; \
} \ } \
} while (0) } while (0)
#define os_reltime_sub os_time_sub #define os_reltime_sub os_time_sub
@ -90,7 +91,7 @@ int os_get_time(struct os_time *t);
* which is used by POSIX mktime(). * which is used by POSIX mktime().
*/ */
int os_mktime(int year, int month, int day, int hour, int min, int sec, int os_mktime(int year, int month, int day, int hour, int min, int sec,
os_time_t *t); os_time_t *t);
int os_gmtime(os_time_t t, struct os_tm *tm); int os_gmtime(os_time_t t, struct os_tm *tm);
@ -191,7 +192,7 @@ int os_unsetenv(const char *name);
/* We don't support file reading support */ /* We don't support file reading support */
static inline char *os_readfile(const char *name, size_t *len) static inline char *os_readfile(const char *name, size_t *len)
{ {
return NULL; return NULL;
} }
/* /*
@ -231,7 +232,6 @@ static inline char *os_readfile(const char *name, size_t *len)
#define os_bzero(s, n) bzero(s, n) #define os_bzero(s, n) bzero(s, n)
#endif #endif
#ifndef os_strdup #ifndef os_strdup
#ifdef _MSC_VER #ifdef _MSC_VER
#define os_strdup(s) _strdup(s) #define os_strdup(s) _strdup(s)
@ -309,14 +309,15 @@ char * ets_strdup(const char *s);
static inline int os_snprintf_error(size_t size, int res) static inline int os_snprintf_error(size_t size, int res)
{ {
return res < 0 || (unsigned int) res >= size; return res < 0 || (unsigned int) res >= size;
} }
static inline void * os_realloc_array(void *ptr, size_t nmemb, size_t size) static inline void * os_realloc_array(void *ptr, size_t nmemb, size_t size)
{ {
if (size && nmemb > (~(size_t) 0) / size) if (size && nmemb > (~(size_t) 0) / size) {
return NULL; return NULL;
return os_realloc(ptr, nmemb * size); }
return os_realloc(ptr, nmemb * size);
} }
#ifdef CONFIG_CRYPTO_MBEDTLS #ifdef CONFIG_CRYPTO_MBEDTLS
@ -335,10 +336,10 @@ static uint8_t forced_memzero_val;
static inline void forced_memzero(void *ptr, size_t len) static inline void forced_memzero(void *ptr, size_t len)
{ {
memset_func(ptr, 0, len); memset_func(ptr, 0, len);
if (len) { if (len) {
forced_memzero_val = ((uint8_t *) ptr)[0]; forced_memzero_val = ((uint8_t *) ptr)[0];
} }
} }
#endif #endif
@ -378,23 +379,23 @@ extern const wifi_osi_funcs_t *wifi_funcs;
static inline void os_timer_setfn(void *ptimer, void *pfunction, void *parg) static inline void os_timer_setfn(void *ptimer, void *pfunction, void *parg)
{ {
return wifi_funcs->_timer_setfn(ptimer, pfunction, parg); return wifi_funcs->_timer_setfn(ptimer, pfunction, parg);
} }
static inline void os_timer_disarm(void *ptimer) static inline void os_timer_disarm(void *ptimer)
{ {
return wifi_funcs->_timer_disarm(ptimer); return wifi_funcs->_timer_disarm(ptimer);
} }
static inline void os_timer_arm_us(void *ptimer,uint32_t u_seconds,bool repeat_flag) static inline void os_timer_arm_us(void *ptimer, uint32_t u_seconds, bool repeat_flag)
{ {
return wifi_funcs->_timer_arm_us(ptimer, u_seconds, repeat_flag); return wifi_funcs->_timer_arm_us(ptimer, u_seconds, repeat_flag);
} }
static inline void os_timer_arm(void *ptimer,uint32_t milliseconds,bool repeat_flag) static inline void os_timer_arm(void *ptimer, uint32_t milliseconds, bool repeat_flag)
{ {
return wifi_funcs->_timer_arm(ptimer, milliseconds, repeat_flag); return wifi_funcs->_timer_arm(ptimer, milliseconds, repeat_flag);
} }
static inline void os_timer_done(void *ptimer) static inline void os_timer_done(void *ptimer)
{ {
return wifi_funcs->_timer_done(ptimer); return wifi_funcs->_timer_done(ptimer);
} }
#endif /* OS_H */ #endif /* OS_H */

View File

@ -1209,7 +1209,9 @@ void wps_registrar_probe_req_rx(struct wps_registrar *reg, const u8 *addr,
struct os_reltime now, dur; struct os_reltime now, dur;
os_get_reltime(&now); os_get_reltime(&now);
os_reltime_sub(&now, &reg->pbc_ignore_start, &dur); os_reltime_sub(&now, &reg->pbc_ignore_start, &dur);
if (dur.sec >= 0 && dur.sec < 5) { #ifdef ESP_SUPPLICANT
if (dur.sec < 5) {
#endif /* ESP_SUPPLICANT */
wpa_printf(MSG_DEBUG, "WPS: Ignore PBC activation " wpa_printf(MSG_DEBUG, "WPS: Ignore PBC activation "
"based on Probe Request from the Enrollee " "based on Probe Request from the Enrollee "
"that just completed PBC provisioning"); "that just completed PBC provisioning");