]> gitweb @ CieloNegro.org - bindings-apr.git/blobdiff - Bindings/APR/Portable.hsc
Bindings.APR.Portable
[bindings-apr.git] / Bindings / APR / Portable.hsc
diff --git a/Bindings/APR/Portable.hsc b/Bindings/APR/Portable.hsc
new file mode 100644 (file)
index 0000000..288b49f
--- /dev/null
@@ -0,0 +1,96 @@
+#include <bindings.dsl.h>
+#include <apr_portable.h>
+
+module Bindings.APR.Portable where
+#strict_import
+import Bindings.APR
+import Bindings.APR.DSO
+import Bindings.APR.ErrNo
+import Bindings.APR.File.Info
+import Bindings.APR.File.Types
+import Bindings.APR.Global.Mutex
+import Bindings.APR.Network.IO
+import Bindings.APR.Pools
+import Bindings.APR.Proc.Mutex
+import Bindings.APR.Shm
+import Bindings.APR.Thread.Mutex
+import Bindings.APR.Thread.Proc
+import Bindings.APR.Time
+
+#opaque_t apr_os_file_t
+#opaque_t apr_os_dir_t
+#opaque_t apr_os_sock_t
+#opaque_t apr_os_proc_mutex_t
+#opaque_t apr_os_thread_t
+#opaque_t apr_os_proc_t
+#opaque_t apr_os_threadkey_t
+#opaque_t apr_os_imp_time_t
+#opaque_t apr_os_exp_time_t
+#opaque_t apr_os_dso_handle_t
+#opaque_t apr_os_shm_t
+
+#starttype struct apr_os_sock_info_t
+#  field os_sock , Ptr <apr_os_sock_t>
+-- FIXME
+-- #  field local   , Ptr <sockaddr>
+-- #  field remote  , Ptr <sockaddr>
+#  field family  , CInt
+#  field type    , CInt
+#  field protocol, CInt
+#stoptype
+
+#if APR_PROC_MUTEX_IS_GLOBAL
+type C'apr_os_global_mutex_t = C'apr_os_proc_mutex_t
+
+c'apr_os_global_mutex_get :: Ptr C'apr_os_global_mutex_t -> Ptr C'apr_global_mutex_t -> IO C'apr_status_t
+c'apr_os_global_mutex_get = c'apr_os_proc_mutex_get
+#else
+#  starttype struct apr_os_global_mutex_t
+#    field pool      , Ptr <apr_pool_t>
+#    field proc_mutex, Ptr <apr_proc_mutex_t>
+#    if APR_HAS_THREADS
+#      field thread_mutex, Ptr <apr_thread_mutex_t>
+#    endif
+#  stoptype
+
+#  ccall apr_os_global_mutex_get, Ptr <apr_os_global_mutex_t> -> Ptr <apr_global_mutex_t> -> IO <apr_status_t>
+#endif
+
+#ccall apr_os_file_get      , Ptr <apr_os_file_t> -> Ptr <apr_file_t> -> IO <apr_status_t>
+#ccall apr_os_dir_get       , Ptr (Ptr <apr_os_dir_t>) -> Ptr <apr_dir_t> -> IO <apr_status_t>
+#ccall apr_os_sock_get      , Ptr <apr_os_sock_t> -> Ptr <apr_socket_t> -> IO <apr_status_t>
+#ccall apr_os_proc_mutex_get, Ptr <apr_os_proc_mutex_t> -> Ptr <apr_proc_mutex_t> -> IO <apr_status_t>
+#ccall apr_os_exp_time_get  , Ptr (Ptr <apr_os_exp_time_t>) -> Ptr <apr_time_exp_t> -> Ptr <apr_status_t>
+#ccall apr_os_imp_time_get  , Ptr (Ptr <apr_os_imp_time_t>) -> Ptr <apr_time_t> -> Ptr <apr_status_t>
+#ccall apr_os_shm_get       , Ptr <apr_os_shm_t> -> Ptr <apr_shm_t> -> IO <apr_status_t>
+
+#if APR_HAS_THREADS
+#  ccall apr_os_thread_get    , Ptr (Ptr <apr_os_thread_t>) -> Ptr <apr_thread_t> -> IO <apr_status_t>
+#  ccall apr_os_threadkey_get , Ptr <apr_os_threadkey_t> -> Ptr <apr_threadkey_t> -> IO <apr_status_t>
+#  ccall apr_os_thread_put    , Ptr (Ptr <apr_thread_t>) -> Ptr <apr_os_thread_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#  ccall apr_os_threadkey_put , Ptr (Ptr <apr_threadkey_t>) -> Ptr <apr_os_threadkey_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+-- FIXME: apr_os_thread_t
+-- #  ccall apr_os_thread_current, IO <apr_os_thread_t>
+#endif
+
+#ccall apr_os_file_put      , Ptr (Ptr <apr_file_t>) -> Ptr <apr_os_file_t> -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_pipe_put      , Ptr (Ptr <apr_file_t>) -> Ptr <apr_os_file_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_pipe_put_ex   , Ptr (Ptr <apr_file_t>) -> Ptr <apr_os_file_t> -> CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_dir_put       , Ptr (Ptr <apr_dir_t>) -> Ptr <apr_os_dir_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_sock_put      , Ptr (Ptr <apr_socket_t>) -> Ptr <apr_os_sock_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_sock_make     , Ptr (Ptr <apr_socket_t>) -> Ptr <apr_os_sock_info_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_proc_mutex_put, Ptr (Ptr <apr_proc_mutex_t>) -> Ptr <apr_os_proc_mutex_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_imp_time_put  , Ptr <apr_time_t> -> Ptr (Ptr <apr_os_imp_time_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_exp_time_put  , Ptr <apr_time_exp_t> -> Ptr (Ptr <apr_os_exp_time_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#ccall apr_os_shm_put       , Ptr (Ptr <apr_shm_t>) -> Ptr <apr_os_shm_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+
+#if APR_HAS_DSO
+#  ccall apr_os_dso_handle_put, Ptr (Ptr <apr_dso_handle_t>) -> Ptr <apr_os_dso_handle_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
+#  ccall apr_os_dso_handle_get, Ptr (Ptr <apr_os_dso_handle_t>) -> Ptr <apr_dso_handle_t> -> IO <apr_status_t>
+#  if APR_HAS_OS_UUID
+#    ccall apr_os_uuid_get    , Ptr CUChar -> IO <apr_status_t>
+#  endif
+#endif
+
+#ccall apr_os_default_encoding, Ptr <apr_pool_t> -> IO (Ptr CChar)
+#ccall apr_os_locale_encoding , Ptr <apr_pool_t> -> IO (Ptr CChar)