]> gitweb @ CieloNegro.org - bindings-apr.git/commitdiff
Bindings.APR.MMap
authorPHO <pho@cielonegro.org>
Sat, 21 Aug 2010 00:01:48 +0000 (09:01 +0900)
committerPHO <pho@cielonegro.org>
Sat, 21 Aug 2010 00:01:48 +0000 (09:01 +0900)
Bindings/APR/MMap.hsc
bindings-apr.cabal
cbits/helper_apr_mmap.c [new file with mode: 0644]

index fc51d51b98d398347b2d54dd3ed180528d63c342..376702d72282669638268e6621c60f9ea3b32659 100644 (file)
@@ -6,6 +6,29 @@ module Bindings.APR.MMap where
 import Bindings.APR
 import Bindings.APR.ErrNo
 import Bindings.APR.Pools
-import Bindings.APR.File.IO
+import Bindings.APR.File.Types
 
--- FIXME
\ No newline at end of file
+#num APR_MMAP_READ
+#num APR_MMAP_WRITE
+
+#starttype struct apr_mmap_t
+#  field cntxt    , Ptr <apr_pool_t>
+#  field mm       , Ptr ()
+#  field size     , <apr_size_t>
+#  field link.next, Ptr <apr_mmap_t>
+#  field link.prev, Ptr <apr_mmap_t>
+#stoptype
+
+#if APR_HAS_MMAP
+
+#num APR_MMAP_THRESHOLD
+#num APR_MMAP_LIMIT
+
+#cinline APR_MMAP_CANDIDATE, <apr_off_t> -> IO CInt
+
+#ccall apr_mmap_create, Ptr (Ptr <apr_mmap_t>) -> Ptr <apr_file_t> -> <apr_off_t> -> <apr_size_t> -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_mmap_dup   , Ptr (Ptr <apr_mmap_t>) -> Ptr <apr_mmap_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_mmap_delete, Ptr <apr_mmap_t> -> IO <apr_status_t>
+#ccall apr_mmap_offset, Ptr (Ptr ()) -> Ptr <apr_mmap_t> -> <apr_off_t> -> IO <apr_status_t>
+
+#endif
\ No newline at end of file
index 6c110d4a2a39292766f804bfd5ad174e2e6a821a..5bf90e808677a729e1f315bbcdbf643394776782 100644 (file)
@@ -61,6 +61,7 @@ Library
         cbits/helper_apr_general.c
         cbits/helper_apr_pools.c
         cbits/helper_apr_lib.c
+        cbits/helper_apr_mmap.c
         cbits/helper_apr_time.c
         cbits/helper_apr_user.c
 
diff --git a/cbits/helper_apr_mmap.c b/cbits/helper_apr_mmap.c
new file mode 100644 (file)
index 0000000..1430242
--- /dev/null
@@ -0,0 +1,4 @@
+#include <bindings.cmacros.h>
+#include <apr_mmap.h>
+
+BC_INLINE1(APR_MMAP_CANDIDATE, apr_off_t, int)