diff options
| author | guo <[email protected]> | 2021-06-20 11:27:52 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-06-20 11:27:52 +0800 |
| commit | b032f9a6e26efba24edc74bffd7677219503e373 (patch) | |
| tree | 7546652a0402a9bcd0aed4a2d76f0756132b3ece /components | |
| parent | e6887932bdeb8443264bfa1a0348061dab382087 (diff) | |
| parent | 485df7a1f444a440d297a19e2c12e1b5ad9612ce (diff) | |
Merge pull request #4793 from mysterywolf/lwipcc
[bug][lwip] 修复lwip临界区保护的bug
Diffstat (limited to 'components')
| -rw-r--r-- | components/net/lwip-1.4.1/src/arch/include/arch/cc.h | 12 | ||||
| -rw-r--r-- | components/net/lwip-2.0.2/src/arch/include/arch/cc.h | 10 | ||||
| -rw-r--r-- | components/net/lwip-2.1.2/src/arch/include/arch/cc.h | 10 |
3 files changed, 13 insertions, 19 deletions
diff --git a/components/net/lwip-1.4.1/src/arch/include/arch/cc.h b/components/net/lwip-1.4.1/src/arch/include/arch/cc.h index c312f50df5..82387b432d 100644 --- a/components/net/lwip-1.4.1/src/arch/include/arch/cc.h +++ b/components/net/lwip-1.4.1/src/arch/include/arch/cc.h @@ -37,8 +37,9 @@ #include <rthw.h> #include <rtthread.h> - +#include <string.h> #include <stdint.h> + typedef uint8_t u8_t; typedef int8_t s8_t; typedef uint16_t u16_t; @@ -99,11 +100,8 @@ void sys_arch_assert(const char* file, int line); #define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0) #define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0) -#include <string.h> - -#define SYS_ARCH_DECL_PROTECT(level) -#define SYS_ARCH_PROTECT(level) rt_enter_critical() -#define SYS_ARCH_UNPROTECT(level) rt_exit_critical() +#define SYS_ARCH_DECL_PROTECT(level) register rt_base_t level +#define SYS_ARCH_PROTECT(level) do {level = rt_hw_interrupt_disable();} while(0) +#define SYS_ARCH_UNPROTECT(level) do {rt_hw_interrupt_enable(level);} while(0) #endif /* __ARCH_CC_H__ */ - diff --git a/components/net/lwip-2.0.2/src/arch/include/arch/cc.h b/components/net/lwip-2.0.2/src/arch/include/arch/cc.h index 4829f5b2e5..28f86d257e 100644 --- a/components/net/lwip-2.0.2/src/arch/include/arch/cc.h +++ b/components/net/lwip-2.0.2/src/arch/include/arch/cc.h @@ -37,6 +37,7 @@ #include <rthw.h> #include <rtthread.h> +#include <string.h> #define U16_F "hu" #define S16_F "hd" @@ -90,11 +91,8 @@ void sys_arch_assert(const char* file, int line); #define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0) #define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0) -#include <string.h> - -#define SYS_ARCH_DECL_PROTECT(level) -#define SYS_ARCH_PROTECT(level) rt_enter_critical() -#define SYS_ARCH_UNPROTECT(level) rt_exit_critical() +#define SYS_ARCH_DECL_PROTECT(level) register rt_base_t level +#define SYS_ARCH_PROTECT(level) do {level = rt_hw_interrupt_disable();} while(0) +#define SYS_ARCH_UNPROTECT(level) do {rt_hw_interrupt_enable(level);} while(0) #endif /* __ARCH_CC_H__ */ - diff --git a/components/net/lwip-2.1.2/src/arch/include/arch/cc.h b/components/net/lwip-2.1.2/src/arch/include/arch/cc.h index 8e98013412..28f86d257e 100644 --- a/components/net/lwip-2.1.2/src/arch/include/arch/cc.h +++ b/components/net/lwip-2.1.2/src/arch/include/arch/cc.h @@ -37,6 +37,7 @@ #include <rthw.h> #include <rtthread.h> +#include <string.h> #define U16_F "hu" #define S16_F "hd" @@ -90,11 +91,8 @@ void sys_arch_assert(const char* file, int line); #define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0) #define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0) -#include "string.h" - -#define SYS_ARCH_DECL_PROTECT(level) -#define SYS_ARCH_PROTECT(level) rt_enter_critical() -#define SYS_ARCH_UNPROTECT(level) rt_exit_critical() +#define SYS_ARCH_DECL_PROTECT(level) register rt_base_t level +#define SYS_ARCH_PROTECT(level) do {level = rt_hw_interrupt_disable();} while(0) +#define SYS_ARCH_UNPROTECT(level) do {rt_hw_interrupt_enable(level);} while(0) #endif /* __ARCH_CC_H__ */ - |
