summaryrefslogtreecommitdiff
path: root/src/windows/Erebos/Storage/Platform.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2024-06-30 17:43:28 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2024-06-30 21:46:19 +0200
commit234feea88c2edd6eac5199c1223dd10d09badbd4 (patch)
treee364c90f88f00eb747e17e19d41cea2bd82ac47b /src/windows/Erebos/Storage/Platform.hs
parent47b8396c94af75832d96e4d3b4e0d7001ff70388 (diff)
Windows support for filesystem storage
Diffstat (limited to 'src/windows/Erebos/Storage/Platform.hs')
-rw-r--r--src/windows/Erebos/Storage/Platform.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/windows/Erebos/Storage/Platform.hs b/src/windows/Erebos/Storage/Platform.hs
new file mode 100644
index 0000000..76c940b
--- /dev/null
+++ b/src/windows/Erebos/Storage/Platform.hs
@@ -0,0 +1,13 @@
+module Erebos.Storage.Platform (
+ createFileExclusive,
+) where
+
+import Data.Bits
+
+import System.IO
+import System.Win32.File
+import System.Win32.Types
+
+createFileExclusive :: FilePath -> IO Handle
+createFileExclusive path = do
+ hANDLEToHandle =<< createFile path gENERIC_WRITE (fILE_SHARE_READ .|. fILE_SHARE_DELETE) Nothing cREATE_NEW fILE_ATTRIBUTE_NORMAL Nothing