aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-08-24 12:24:46 +0000
committerJason A. Donenfeld <Jason@zx2c4.com>2019-08-24 12:26:00 +0000
commitc072f4f3c4b540c7cfebec563b0fb5d7ba932b6f (patch)
treec908f6664b8425ab2b88dcc1234622fdd54acc6f
parentREADME: clarify spinning (diff)
downloadwintun-c072f4f3c4b540c7cfebec563b0fb5d7ba932b6f.tar.xz
wintun-c072f4f3c4b540c7cfebec563b0fb5d7ba932b6f.zip
Explicitly opt-in to READ_ONCE/WRITE_ONCE semantics
We mark all atomic variables as volatile and have our atomic accessors built around that. We probably, therefore, want Linux-style READ/WRITE_ONCE semantics of implying memory barriers. /volatile:ms does this automatically. This was already the default on amd64 and x86 but not on ARM. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Reported-by: Lev Stipakov <lstipakov@gmail.com>
-rw-r--r--wintun.vcxproj3
1 files changed, 2 insertions, 1 deletions
diff --git a/wintun.vcxproj b/wintun.vcxproj
index c70f032..3bb61d1 100644
--- a/wintun.vcxproj
+++ b/wintun.vcxproj
@@ -125,6 +125,7 @@
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>NDIS_MINIPORT_DRIVER=1;NDIS620_MINIPORT=1;NDIS683_MINIPORT=1;NDIS_WDM=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalOptions>/volatile:ms %(AdditionalOptions)</AdditionalOptions>
<EnablePREfast>true</EnablePREfast>
</ClCompile>
<ResourceCompile>
@@ -175,4 +176,4 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
-</Project> \ No newline at end of file
+</Project>