你可以在doc/sys_arch.txt和src/include/lwip/sys.h文件中查找该相关信息。它也叫轻量级同步机制,它的一些实现使用了一个更轻量的保护机制(使用信号量)。lwIP使用如下一些宏:
SYS_ARCH_PROTECH(x):开启一个模块的保护。通常返回先前的状态。
SYS_ARCH_UNPROTECT(x):结束保护。恢复保护的状态给x
SYS_ARCH_DECL_PROTECT(x):定义变量x来持有该保护。使用这个将会要求你选择你要保护的数据类型。
参数x可能并不会被使用(普通发布版中unix的移植并没有使用到它)。版本号为1.3.0的lwIP使用如下一些宏[1]。 你可以使用如下3种选项来实现它:
1、 不提供该实现。这是合适的,当lwip并没有在多
线程环境或中断中运行。因此你不要定义
SYS_ARCH_PROTECT(在cc.h文件中)和
SYS_LIGHTWEIGHT_PORT(在lwipopts.h文件中)。
由于SYS_LIGHTWEIGHT_PORT默认为0,opt.h
和sys.h提供了
SYS_ARCH_DECL_PROTECT, SYS_ARCH_PROTECT
和 SYS_ARCH_UNPROTECT默认空的定义。