]> gitweb @ CieloNegro.org - bindings-apr.git/commitdiff
more bindings
authorPHO <pho@cielonegro.org>
Sun, 8 Aug 2010 12:00:54 +0000 (21:00 +0900)
committerPHO <pho@cielonegro.org>
Sun, 8 Aug 2010 12:00:54 +0000 (21:00 +0900)
Bindings/APR/Allocator.hsc
Bindings/APR/Allocator/Types.hsc
Bindings/APR/AnyLock.hsc [new file with mode: 0644]
Bindings/APR/ErrNo.hsc [moved from Bindings/APR/Errno.hsc with 99% similarity]
Bindings/APR/Pools.hsc
Bindings/APR/Proc/Mutex.hsc [new file with mode: 0644]
Bindings/APR/Thread/Mutex.hsc
Bindings/APR/Thread/RWLock.hsc [new file with mode: 0644]
bindings-apr.cabal
cbits/helper_apr_anylock.c [new file with mode: 0644]

index 236fff908837cff4a2b441d5f67149626609ebcd..b2dcfa66cbe6934d5e2ac197e6747d0a9806ebd3 100644 (file)
@@ -5,7 +5,7 @@ module Bindings.APR.Allocator where
 #strict_import
 import Bindings.APR
 import Bindings.APR.Allocator.Types
-import Bindings.APR.Errno
+import Bindings.APR.ErrNo
 import Bindings.APR.Thread.Mutex
 import Bindings.APR.Pools
 
index 088d6f69f7c23e070cf8226cb9ffdb52ad35d72d..3f1652276db85cdc57f55e75649b0e1309829585 100644 (file)
@@ -8,10 +8,10 @@ import Bindings.APR
 #opaque_t apr_allocator_t
 
 #starttype struct apr_memnode_t
-#field next       , Ptr <apr_memnode_t>
-#field ref        , Ptr (Ptr <apr_memnode_t>)
-#field index      , <apr_uint32_t>
-#field free_index , <apr_uint32_t>
-#field first_avail, Ptr CChar
-#field endp       , Ptr CChar
+#  field next       , Ptr <apr_memnode_t>
+#  field ref        , Ptr (Ptr <apr_memnode_t>)
+#  field index      , <apr_uint32_t>
+#  field free_index , <apr_uint32_t>
+#  field first_avail, Ptr CChar
+#  field endp       , Ptr CChar
 #stoptype
diff --git a/Bindings/APR/AnyLock.hsc b/Bindings/APR/AnyLock.hsc
new file mode 100644 (file)
index 0000000..acfc483
--- /dev/null
@@ -0,0 +1,32 @@
+#include <bindings.dsl.h>
+#include <apr_anylock.h>
+
+module Bindings.APR.AnyLock where
+#strict_import
+import Bindings.APR.ErrNo
+import Bindings.APR.Proc.Mutex
+import Bindings.APR.Thread.Mutex
+import Bindings.APR.Thread.RWLock
+
+#synonym_t tm_lock, CInt
+#num apr_anylock_none
+#num apr_anylock_procmutex
+#num apr_anylock_readlock
+#num apr_anylock_writelock
+
+#starttype union apr_anylock_u_t
+#  union_field pm, Ptr <apr_proc_mutex_t>
+#  if APR_HAS_THREADS
+#    union_field tm, Ptr <apr_thread_mutex_t>
+#    union_field rw, Ptr <apr_thread_rwlock_t>
+#  endif
+#stoptype
+
+#starttype struct apr_anylock_t
+#field type, <tm_lock>
+#field lock, <apr_anylock_u_t>
+#stoptype
+
+#cinline APR_ANYLOCK_LOCK   , Ptr <apr_anylock_t> -> IO <apr_status_t>
+#cinline APR_ANYLOCK_TRYLOCK, Ptr <apr_anylock_t> -> IO <apr_status_t>
+#cinline APR_ANYLOCK_UNLOCK , Ptr <apr_anylock_t> -> IO <apr_status_t>
similarity index 99%
rename from Bindings/APR/Errno.hsc
rename to Bindings/APR/ErrNo.hsc
index a18a2c88aa537301e046a7a9492fa1ac6ac25bcd..8cd11d9e236707bae7d292b3149d90201207672b 100644 (file)
@@ -1,7 +1,7 @@
 #include <bindings.dsl.h>
 #include <apr_errno.h>
 
-module Bindings.APR.Errno where
+module Bindings.APR.ErrNo where
 #strict_import
 import Bindings.APR
 
index 46c47903b1db22b468aee637dfed3f3cc8402d9b..87979e455fbf868c9945862d4254c5614fabbf8e 100644 (file)
@@ -5,7 +5,7 @@ module Bindings.APR.Pools where
 #strict_import
 import Bindings.APR
 import Bindings.APR.Allocator.Types
-import Bindings.APR.Errno
+import Bindings.APR.ErrNo
 
 #opaque_t apr_pool_t
 
diff --git a/Bindings/APR/Proc/Mutex.hsc b/Bindings/APR/Proc/Mutex.hsc
new file mode 100644 (file)
index 0000000..69d8f7f
--- /dev/null
@@ -0,0 +1,30 @@
+#include <bindings.dsl.h>
+#include <apr_proc_mutex.h>
+
+module Bindings.APR.Proc.Mutex where
+#strict_import
+import Bindings.APR.ErrNo
+import Bindings.APR.Pools
+
+#integral_t apr_lockmech_e
+#num APR_LOCK_FCNTL
+#num APR_LOCK_FLOCK
+#num APR_LOCK_SYSVSEM
+#num APR_LOCK_PROC_PTHREAD
+#num APR_LOCK_POSIXSEM
+#num APR_LOCK_DEFAULT
+
+#opaque_t apr_proc_mutex_t
+
+#ccall apr_proc_mutex_create    , Ptr (Ptr <apr_proc_mutex_t>) -> Ptr CChar -> <apr_lockmech_e> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_child_init, Ptr (Ptr <apr_proc_mutex_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_lock      , Ptr <apr_proc_mutex_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_trylock   , Ptr <apr_proc_mutex_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_unlock    , Ptr <apr_proc_mutex_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_destroy   , Ptr <apr_proc_mutex_t> -> IO <apr_status_t>
+#ccall apr_proc_mutex_cleanup   , Ptr () -> IO <apr_status_t>
+#ccall apr_proc_mutex_lockfile  , Ptr <apr_proc_mutex_t> -> IO (Ptr CChar)
+#ccall apr_proc_mutex_name      , Ptr <apr_proc_mutex_t> -> IO (Ptr CChar)
+#ccall apr_proc_mutex_defname   , IO (Ptr CChar)
+
+#ccall apr_proc_mutex_pool_get  , Ptr <apr_proc_mutex_t> -> IO (Ptr <apr_pool_t>)
index 07c7ddd634d03222585306b42591213658d30614..8efd2e05a88159bcf48d943cc8b2b855311adb59 100644 (file)
@@ -3,7 +3,7 @@
 
 module Bindings.APR.Thread.Mutex where
 #strict_import
-import Bindings.APR.Errno
+import Bindings.APR.ErrNo
 import Bindings.APR.Pools
 
 #opaque_t apr_thread_mutex_t
diff --git a/Bindings/APR/Thread/RWLock.hsc b/Bindings/APR/Thread/RWLock.hsc
new file mode 100644 (file)
index 0000000..28cccbf
--- /dev/null
@@ -0,0 +1,18 @@
+#include <bindings.dsl.h>
+#include <apr_thread_rwlock.h>
+
+module Bindings.APR.Thread.RWLock where
+#strict_import
+import Bindings.APR.ErrNo
+import Bindings.APR.Pools
+
+#opaque_t apr_thread_rwlock_t
+
+#ccall apr_thread_rwlock_create   , Ptr (Ptr <apr_thread_rwlock_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_thread_rwlock_rdlock   , Ptr <apr_thread_rwlock_t> -> IO <apr_status_t>
+#ccall apr_thread_rwlock_tryrdlock, Ptr <apr_thread_rwlock_t> -> IO <apr_status_t>
+#ccall apr_thread_rwlock_wrlock   , Ptr <apr_thread_rwlock_t> -> IO <apr_status_t>
+#ccall apr_thread_rwlock_trywrlock, Ptr <apr_thread_rwlock_t> -> IO <apr_status_t>
+#ccall apr_thread_rwlock_destroy  , Ptr <apr_thread_rwlock_t> -> IO <apr_status_t>
+
+#ccall apr_thread_rwlock_pool_get , Ptr <apr_thread_rwlock_t> -> IO (Ptr <apr_pool_t>)
index 4e703739d657a72b1982513c199cf21afe6185a0..cec13ca528543f2c7ec40605a189460c47e52b45 100644 (file)
@@ -31,11 +31,15 @@ Library
         Bindings.APR
         Bindings.APR.Allocator
         Bindings.APR.Allocator.Types
-        Bindings.APR.Errno
+        Bindings.APR.AnyLock
+        Bindings.APR.ErrNo
         Bindings.APR.Pools
+        Bindings.APR.Proc.Mutex
         Bindings.APR.Thread.Mutex
+        Bindings.APR.Thread.RWLock
 
     C-Sources:
+        cbits/helper_apr_anylock.c
         cbits/helper_apr_errno.c
         cbits/helper_apr_pools.c
 
diff --git a/cbits/helper_apr_anylock.c b/cbits/helper_apr_anylock.c
new file mode 100644 (file)
index 0000000..a874008
--- /dev/null
@@ -0,0 +1,6 @@
+#include <bindings.cmacros.h>
+#include <apr_anylock.h>
+
+BC_INLINE1(APR_ANYLOCK_LOCK   , apr_anylock_t*, apr_status_t)
+BC_INLINE1(APR_ANYLOCK_TRYLOCK, apr_anylock_t*, apr_status_t)
+BC_INLINE1(APR_ANYLOCK_UNLOCK , apr_anylock_t*, apr_status_t)