packages feed

bindings-apr (empty) → 0.1

raw patch · 55 files changed

+2195/−0 lines, 55 filesdep +basedep +bindings-DSLsetup-changed

Dependencies added: base, bindings-DSL

Files

+ Bindings/APR.hsc view
@@ -0,0 +1,180 @@+#include <bindings.dsl.h>+#include <apr.h>++module Bindings.APR where+#strict_import++{- I'm not sure if these are really helpful... (PHO)+ -}+#num APR_HAS_INLINE++#num APR_HAVE_ARPA_INET_H+#num APR_HAVE_CONIO_H+#num APR_HAVE_CRYPT_H+#num APR_HAVE_CTYPE_H+#num APR_HAVE_DIRENT_H+#num APR_HAVE_ERRNO_H+#num APR_HAVE_FCNTL_H+#num APR_HAVE_IO_H+#num APR_HAVE_LIMITS_H+#num APR_HAVE_NETDB_H+#num APR_HAVE_NETINET_IN_H+#num APR_HAVE_NETINET_SCTP_H+#num APR_HAVE_NETINET_SCTP_UIO_H+#num APR_HAVE_NETINET_TCP_H+#num APR_HAVE_PTHREAD_H+#num APR_HAVE_SEMAPHORE_H+#num APR_HAVE_SIGNAL_H+#num APR_HAVE_STDARG_H+#num APR_HAVE_STDINT_H+#num APR_HAVE_STDIO_H+#num APR_HAVE_STDLIB_H+#num APR_HAVE_STRING_H+#num APR_HAVE_STRINGS_H+#num APR_HAVE_SYS_IOCTL_H+#num APR_HAVE_SYS_SENDFILE_H+#num APR_HAVE_SYS_SIGNAL_H+#num APR_HAVE_SYS_SOCKET_H+#num APR_HAVE_SYS_SOCKIO_H+#num APR_HAVE_SYS_SYSLIMITS_H+#num APR_HAVE_SYS_TIME_H+#num APR_HAVE_SYS_TYPES_H+#num APR_HAVE_SYS_UIO_H+#num APR_HAVE_SYS_UN_H+#num APR_HAVE_SYS_WAIT_H+#num APR_HAVE_TIME_H+#num APR_HAVE_UNISTD_H+#num APR_HAVE_WINDOWS_H+#num APR_HAVE_WINSOCK2_H++#num APR_HAVE_SHMEM_MMAP_TMP+#num APR_HAVE_SHMEM_MMAP_SHM+#num APR_HAVE_SHMEM_MMAP_ZERO+#num APR_HAVE_SHMEM_SHMGET_ANON+#num APR_HAVE_SHMEM_SHMGET+#num APR_HAVE_SHMEM_MMAP_ANON+#num APR_HAVE_SHMEM_BEOS++#num APR_USE_SHMEM_MMAP_TMP+#num APR_USE_SHMEM_MMAP_SHM+#num APR_USE_SHMEM_MMAP_ZERO+#num APR_USE_SHMEM_SHMGET_ANON+#num APR_USE_SHMEM_SHMGET+#num APR_USE_SHMEM_MMAP_ANON+#num APR_USE_SHMEM_BEOS++#num APR_USE_FLOCK_SERIALIZE+#num APR_USE_SYSVSEM_SERIALIZE+#num APR_USE_POSIXSEM_SERIALIZE+#num APR_USE_FCNTL_SERIALIZE+#num APR_USE_PROC_PTHREAD_SERIALIZE+#num APR_USE_PTHREAD_SERIALIZE++#num APR_HAS_FLOCK_SERIALIZE+#num APR_HAS_SYSVSEM_SERIALIZE+#num APR_HAS_POSIXSEM_SERIALIZE+#num APR_HAS_FCNTL_SERIALIZE+#num APR_HAS_PROC_PTHREAD_SERIALIZE++#num APR_PROCESS_LOCK_IS_GLOBAL++#num APR_HAVE_CORKABLE_TCP+#num APR_HAVE_GETRLIMIT+#num APR_HAVE_IN_ADDR+#num APR_HAVE_INET_ADDR+#num APR_HAVE_INET_NETWORK+#num APR_HAVE_IPV6+#num APR_HAVE_MEMMOVE+#num APR_HAVE_SETRLIMIT+#num APR_HAVE_SIGACTION+#num APR_HAVE_SIGSUSPEND+#num APR_HAVE_SIGWAIT+#num APR_HAVE_SA_STORAGE+#num APR_HAVE_STRCASECMP+#num APR_HAVE_STRDUP+#num APR_HAVE_STRICMP+#num APR_HAVE_STRNCASECMP+#num APR_HAVE_STRNICMP+#num APR_HAVE_STRSTR+#num APR_HAVE_MEMCHR+#num APR_HAVE_STRUCT_RLIMIT+#num APR_HAVE_UNION_SEMUN+#num APR_HAVE_SCTP+#num APR_HAVE_IOVEC++#num APR_HAS_SHARED_MEMORY+#num APR_HAS_THREADS+#num APR_HAS_SENDFILE+#num APR_HAS_MMAP+#num APR_HAS_FORK+#num APR_HAS_RANDOM+#num APR_HAS_OTHER_CHILD+#num APR_HAS_DSO+#num APR_HAS_SO_ACCEPTFILTER+#num APR_HAS_UNICODE_FS+#num APR_HAS_PROC_INVOKED+#num APR_HAS_USER+#num APR_HAS_LARGE_FILES+#num APR_HAS_XTHREAD_FILES+#num APR_HAS_OS_UUID++#num APR_PROCATTR_USER_SET_REQUIRES_PASSWORD++#if APR_HAVE_NETINET_TCP_H+#include <netinet/tcp.h>+#endif++#num APR_FILES_AS_SOCKETS+#num APR_CHARSET_EBCDIC+#num APR_TCP_NOPUSH_FLAG+#num APR_TCP_NODELAY_INHERITED+#num APR_O_NONBLOCK_INHERITED++#integral_t apr_byte_t++#integral_t apr_int16_t+#integral_t apr_uint16_t++#integral_t apr_int32_t+#integral_t apr_uint32_t++#integral_t apr_int64_t+#integral_t apr_uint64_t++#integral_t apr_size_t+#integral_t apr_ssize_t+#integral_t apr_off_t+#integral_t apr_socklen_t+#integral_t apr_ino_t++#num APR_SIZEOF_VOIDP+#integral_t apr_uintptr_t++#num APR_IS_BIGENDIAN++#num APR_INT16_MIN+#num APR_INT16_MAX+#num APR_UINT16_MAX+#num APR_INT32_MIN+#num APR_INT32_MAX+#num APR_UINT32_MAX+#num APR_INT64_MIN+#num APR_INT64_MAX+#num APR_UINT64_MAX+#num APR_SIZE_MAX++#globalarray APR_SSIZE_T_FMT     , CChar+#globalarray APR_SIZE_T_FMT      , CChar+#globalarray APR_OFF_T_FMT       , CChar+#globalarray APR_PID_T_FMT       , CChar+#globalarray APR_INT64_T_FMT     , CChar+#globalarray APR_UINT64_T_FMT    , CChar+#globalarray APR_UINT64_T_HEX_FMT, CChar+#num APR_PROC_MUTEX_IS_GLOBAL+#globalarray APR_EOL_STR         , CChar++#opaque_t apr_wait_t++#num APR_PATH_MAX++#globalarray APR_DSOPATH, CChar
+ Bindings/APR/Allocator/Types.hsc view
@@ -0,0 +1,17 @@+#include <bindings.dsl.h>+#include <apr_allocator.h>++module Bindings.APR.Allocator.Types where+#strict_import+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+#stoptype
+ Bindings/APR/Atomic.hsc view
@@ -0,0 +1,22 @@+#include <bindings.dsl.h>+#include <apr_atomic.h>++module Bindings.APR.Atomic where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#ccall apr_atomic_init, Ptr <apr_pool_t> -> IO <apr_status_t>++#ccall apr_atomic_read32, Ptr <apr_uint32_t> -> IO <apr_uint32_t>+#ccall apr_atomic_set32 , Ptr <apr_uint32_t> -> <apr_uint32_t> -> IO ()+#ccall apr_atomic_add32 , Ptr <apr_uint32_t> -> <apr_uint32_t> -> IO <apr_uint32_t>+#ccall apr_atomic_sub32 , Ptr <apr_uint32_t> -> <apr_uint32_t> -> IO ()+#ccall apr_atomic_inc32 , Ptr <apr_uint32_t> -> IO <apr_uint32_t>+#ccall apr_atomic_dec32 , Ptr <apr_uint32_t> -> IO CInt+#ccall apr_atomic_cas32 , Ptr <apr_uint32_t> -> <apr_uint32_t> -> <apr_uint32_t> -> IO <apr_uint32_t>+#ccall apr_atomic_xchg32, Ptr <apr_uint32_t> -> <apr_uint32_t> -> IO <apr_uint32_t>++#ccall apr_atomic_casptr , Ptr (Ptr ()) -> Ptr () -> Ptr () -> IO (Ptr ())+#ccall apr_atomic_xchgptr, Ptr (Ptr ()) -> Ptr () -> IO (Ptr ())
+ Bindings/APR/DSO.hsc view
@@ -0,0 +1,20 @@+#include <bindings.dsl.h>+#include <apr_dso.h>++module Bindings.APR.DSO where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#if APR_HAS_DSO++#  opaque_t  apr_dso_handle_t+#  synonym_t apr_dso_handle_sym_t, Ptr ()++#  ccall apr_dso_load  , Ptr (Ptr <apr_dso_handle_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_dso_unload, Ptr <apr_dso_handle_t> -> IO <apr_status_t>+#  ccall apr_dso_sym   , Ptr <apr_dso_handle_sym_t> -> Ptr <apr_dso_handle_t> -> Ptr CChar -> IO <apr_status_t>+#  ccall apr_dso_error , Ptr <apr_dso_handle_t> -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)++#endif
+ Bindings/APR/Env.hsc view
@@ -0,0 +1,11 @@+#include <bindings.dsl.h>+#include <apr_env.h>++module Bindings.APR.Env where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#ccall apr_env_get   , Ptr (Ptr CChar) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_env_set   , Ptr CChar -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_env_delete, Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>
+ Bindings/APR/ErrNo.hsc view
@@ -0,0 +1,173 @@+#include <bindings.dsl.h>+#include <apr_errno.h>++module Bindings.APR.ErrNo where+#strict_import+import Bindings.APR++#integral_t apr_status_t++#ccall apr_strerror, <apr_status_t> -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)++#num APR_OS_START_ERROR+#num APR_OS_ERRSPACE_SIZE+#num APR_UTIL_ERRSPACE_SIZE+#num APR_OS_START_STATUS+#num APR_UTIL_START_STATUS+#num APR_OS_START_USERERR+#num APR_OS_START_USEERR+#num APR_OS_START_CANONERR+#num APR_OS_START_EAIERR+#num APR_OS_START_SYSERR++#num APR_SUCCESS++#num APR_ENOSTAT+#num APR_ENOPOOL+#num APR_EBADDATE+#num APR_EINVALSOCK+#num APR_ENOPROC+#num APR_ENOTIME+#num APR_ENODIR+#num APR_ENOLOCK+#num APR_ENOPOLL+#num APR_ENOSOCKET+#num APR_ENOTHREAD+#num APR_ENOTHDKEY+#num APR_EGENERAL+#num APR_ENOSHMAVAIL+#num APR_EBADIP+#num APR_EBADMASK+#num APR_EDSOOPEN+#num APR_EABSOLUTE+#num APR_ERELATIVE+#num APR_EINCOMPLETE+#num APR_EABOVEROOT+#num APR_EBADPATH+#num APR_EPATHWILD+#num APR_ESYMNOTFOUND+#num APR_EPROC_UNKNOWN+#num APR_ENOTENOUGHENTROPY++#cinline APR_STATUS_IS_ENOSTAT     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOPOOL     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBADDATE    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINVALSOCK  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOPROC     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTIME     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENODIR      , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOLOCK     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOSOCKET   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTHREAD   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTHDKEY   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EGENERAL    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOSHMAVAIL , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBADIP      , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBADMASK    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EDSOOPEN    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EABSOLUTE   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ERELATIVE   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINCOMPLETE , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EABOVEROOT  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBADPATH    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EPATHWILD   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ESYMNOTFOUND, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EPROC_UNKNOWN    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTENOUGHENTROPY, <apr_status_t> -> IO CInt++#num APR_INCHILD+#num APR_INPARENT+#num APR_DETACH+#num APR_NOTDETACH+#num APR_CHILD_DONE+#num APR_CHILD_NOTDONE+#num APR_TIMEUP+#num APR_INCOMPLETE+#num APR_BADCH+#num APR_BADARG+#num APR_EOF+#num APR_NOTFOUND+#num APR_ANONYMOUS+#num APR_FILEBASED+#num APR_KEYBASED+#num APR_EINIT+#num APR_ENOTIMPL+#num APR_EMISMATCH+#num APR_EBUSY++#cinline APR_STATUS_IS_INCHILD   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_INPARENT  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_DETACH    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_NOTDETACH , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_CHILD_DONE, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_CHILD_NOTDONE, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_TIMEUP    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_INCOMPLETE, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_BADCH     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_BADARG    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EOF       , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_NOTFOUND  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ANONYMOUS , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_FILEBASED , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_KEYBASED  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINIT     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTIMPL  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EMISMATCH , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBUSY     , <apr_status_t> -> IO CInt++#num APR_EACCES+#num APR_EEXIST+#num APR_ENAMETOOLONG+#num APR_ENOENT+#num APR_ENOTDIR+#num APR_ENOSPC+#num APR_ENOMEM+#num APR_EMFILE+#num APR_ENFILE+#num APR_EBADF+#num APR_EINVAL+#num APR_ESPIPE+#num APR_EAGAIN+#num APR_EINTR+#num APR_ENOTSOCK+#num APR_ECONNREFUSED+#num APR_EINPROGRESS+#num APR_ECONNABORTED+#num APR_ECONNRESET+#num APR_ETIMEDOUT+#num APR_EHOSTUNREACH+#num APR_ENETUNREACH+#num APR_EFTYPE+#num APR_EPIPE+#num APR_EXDEV+#num APR_ENOTEMPTY+#num APR_EAFNOSUPPORT++#cinline APR_STATUS_IS_EACCES , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EEXIST , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENAMETOOLONG, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOENT , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTDIR, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOSPC , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOMEM , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EMFILE , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENFILE , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EBADF  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINVAL , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ESPIPE , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EAGAIN , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINTR  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTSOCK, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ECONNREFUSED, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EINPROGRESS , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ECONNABORTED, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ECONNRESET  , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ETIMEDOUT   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_TIMEDUP     , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EHOSTUNREACH, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENETUNREACH , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EFTYPE   , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EPIPE    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EXDEV    , <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_ENOTEMPTY, <apr_status_t> -> IO CInt+#cinline APR_STATUS_IS_EAFNOSUPPORT, <apr_status_t> -> IO CInt
+ Bindings/APR/FNMatch.hsc view
@@ -0,0 +1,19 @@+#include <bindings.dsl.h>+#include <apr_fnmatch.h>++module Bindings.APR.FNMatch where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.Tables++#num APR_FNM_NOMATCH++#num APR_FNM_NOESCAPE+#num APR_FNM_PATHNAME+#num APR_FNM_PERIOD+#num APR_FNM_CASE_BLIND++#ccall apr_fnmatch     , Ptr CChar -> Ptr CChar -> CInt -> IO <apr_status_t>+#ccall apr_fnmatch_test, Ptr CChar -> IO CInt+#ccall apr_match_glob  , Ptr CChar -> Ptr (Ptr <apr_array_header_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>
+ Bindings/APR/File/IO.hsc view
@@ -0,0 +1,121 @@+#include <bindings.dsl.h>+#include <apr_file_io.h>++module Bindings.APR.File.IO where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.File.Info+import Bindings.APR.File.Types+import Bindings.APR.Pools+import Bindings.APR.Time+import Bindings.APR.Want++#num APR_FOPEN_READ+#num APR_FOPEN_WRITE+#num APR_FOPEN_CREATE+#num APR_FOPEN_APPEND+#num APR_FOPEN_TRUNCATE+#num APR_FOPEN_BINARY+#num APR_FOPEN_EXCL+#num APR_FOPEN_BUFFERED+#num APR_FOPEN_DELONCLOSE+#num APR_FOPEN_XTHREAD+#num APR_FOPEN_SHARELOCK+#num APR_FOPEN_NOCLEANUP+#num APR_FOPEN_SENDFILE_ENABLED+#num APR_FOPEN_LARGEFILE+#num APR_FOPEN_SPARSE++#num APR_READ+#num APR_WRITE+#num APR_CREATE+#num APR_APPEND+#num APR_TRUNCATE+#num APR_BINARY+#num APR_EXCL+#num APR_BUFFERED+#num APR_DELONCLOSE+#num APR_XTHREAD+#num APR_SHARELOCK+#num APR_FILE_NOCLEANUP+#num APR_SENDFILE_ENABLED+#num APR_LARGEFILE++#num APR_SET+#num APR_CUR+#num APR_END++#num APR_FILE_ATTR_READONLY+#num APR_FILE_ATTR_EXECUTABLE+#num APR_FILE_ATTR_HIDDEN++#num APR_MAX_IOVEC_SIZE++#integral_t apr_fileattrs_t+#integral_t apr_seek_where_t++#num APR_FLOCK_SHARED+#num APR_FLOCK_EXCLUSIVE+#num APR_FLOCK_TYPEMASK+#num APR_FLOCK_NONBLOCK++#ccall apr_file_open  , Ptr (Ptr <apr_file_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_close , Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_remove, Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_rename, Ptr CChar -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_copy  , Ptr CChar -> Ptr CChar -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_append, Ptr CChar -> Ptr CChar -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_eof   , Ptr <apr_file_t> -> IO <apr_status_t>++#ccall apr_file_open_stderr, Ptr (Ptr <apr_file_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_open_stdout, Ptr (Ptr <apr_file_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_open_stdin , Ptr (Ptr <apr_file_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>++#ccall apr_file_open_flags_stderr, Ptr (Ptr <apr_file_t>) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_open_flags_stdout, Ptr (Ptr <apr_file_t>) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_open_flags_stdin , Ptr (Ptr <apr_file_t>) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>++#ccall apr_file_read       , Ptr <apr_file_t> -> Ptr () -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_write      , Ptr <apr_file_t> -> Ptr () -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_writev     , Ptr <apr_file_t> -> Ptr <iovec> -> <apr_size_t> -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_read_full  , Ptr <apr_file_t> -> Ptr () -> <apr_size_t> -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_write_full , Ptr <apr_file_t> -> Ptr () -> <apr_size_t> -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_writev_full, Ptr <apr_file_t> -> Ptr <iovec> -> <apr_size_t> -> Ptr <apr_size_t> -> IO <apr_status_t>++#ccall apr_file_putc    , CChar -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_getc    , CChar -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_ungetc  , CChar -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_gets    , Ptr CChar -> CInt -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_puts    , Ptr CChar -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_flush   , Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_dup     , Ptr (Ptr <apr_file_t>) -> Ptr <apr_file_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_dup2    , Ptr <apr_file_t> -> Ptr <apr_file_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_setaside, Ptr (Ptr <apr_file_t>) -> Ptr <apr_file_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_buffer_set      , Ptr <apr_file_t> -> Ptr CChar -> <apr_size_t> -> IO <apr_status_t>+#ccall apr_file_buffer_size_get , Ptr <apr_size_t> -> IO <apr_size_t>+#ccall apr_file_seek            , Ptr <apr_file_t> -> <apr_seek_where_t> -> Ptr <apr_off_t> -> IO <apr_status_t>+#ccall apr_file_pipe_create     , Ptr (Ptr <apr_file_t>) -> Ptr (Ptr <apr_file_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_pipe_create_ex  , Ptr (Ptr <apr_file_t>) -> Ptr (Ptr <apr_file_t>) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_namedpipe_create, Ptr CChar -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_pipe_timeout_get, Ptr <apr_file_t> -> Ptr <apr_interval_time_t> -> IO <apr_status_t>+#ccall apr_file_pipe_timeout_set, Ptr <apr_file_t> -> <apr_interval_time_t> -> IO <apr_status_t>+#ccall apr_file_lock     , Ptr <apr_file_t> -> CInt -> IO <apr_status_t>+#ccall apr_file_unlock   , Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_name_get , Ptr (Ptr CChar) -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_data_get , Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_data_set , Ptr <apr_file_t> -> Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO <apr_status_t>+-- apr_file_printf can't be wrapped as it takes varargs.+#ccall apr_file_perms_set, Ptr CChar -> <apr_fileperms_t> -> IO <apr_status_t>+#ccall apr_file_attrs_set, Ptr CChar -> <apr_fileattrs_t> -> <apr_fileattrs_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_mtime_set, Ptr CChar -> <apr_time_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_dir_make      , Ptr CChar -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_dir_make_recursive, Ptr CChar -> <apr_fileperms_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_dir_remove    , Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_file_info_get , Ptr <apr_finfo_t> -> <apr_int32_t> -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_trunc    , Ptr <apr_file_t> -> <apr_off_t> -> IO <apr_status_t>+#ccall apr_file_flags_get, Ptr <apr_file_t> -> IO <apr_int32_t>++#ccall apr_file_pool_get     , Ptr <apr_file_t> -> IO (Ptr <apr_pool_t>)+#ccall apr_file_inherit_set  , Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_file_inherit_unset, Ptr <apr_file_t> -> IO <apr_status_t>
+ Bindings/APR/File/Info.hsc view
@@ -0,0 +1,131 @@+#include <bindings.dsl.h>+#include <apr_file_info.h>++module Bindings.APR.File.Info where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.File.Types+import Bindings.APR.Pools+import Bindings.APR.Tables+import Bindings.APR.Time+import Bindings.APR.User++#integral_t apr_filetype_e+#num APR_NOFILE+#num APR_REG+#num APR_DIR+#num APR_CHR+#num APR_BLK+#num APR_PIPE+#num APR_LNK+#num APR_SOCK+#num APR_UNKFILE++#num APR_FPROT_USETID+#num APR_FPROT_UREAD+#num APR_FPROT_UWRITE+#num APR_FPROT_UEXECUTE++#num APR_FPROT_GSETID+#num APR_FPROT_GREAD+#num APR_FPROT_GWRITE+#num APR_FPROT_GEXECUTE++#num APR_FPROT_WSTICKY+#num APR_FPROT_WREAD+#num APR_FPROT_WWRITE+#num APR_FPROT_WEXECUTE++#num APR_FPROT_OS_DEFAULT+#num APR_FPROT_FILE_SOURCE_PERMS++#num APR_USETID+#num APR_UREAD+#num APR_UWRITE+#num APR_UEXECUTE+#num APR_GSETID+#num APR_GREAD+#num APR_GWRITE+#num APR_GEXECUTE+#num APR_WSTICKY+#num APR_WREAD+#num APR_WWRITE+#num APR_WEXECUTE+#num APR_OS_DEFAULT+#num APR_FILE_SOURCE_PERMS++#opaque_t   apr_dir_t+#integral_t apr_fileperms_t+#integral_t apr_dev_t++#num APR_FINFO_LINK+#num APR_FINFO_MTIME+#num APR_FINFO_CTIME+#num APR_FINFO_ATIME+#num APR_FINFO_SIZE+#num APR_FINFO_CSIZE+#num APR_FINFO_DEV+#num APR_FINFO_INODE+#num APR_FINFO_TYPE+#num APR_FINFO_USER+#num APR_FINFO_GROUP+#num APR_FINFO_UPROT+#num APR_FINFO_GPROT+#num APR_FINFO_WPROT+#num APR_FINFO_ICASE+#num APR_FINFO_NAME++#num APR_FINFO_MIN+#num APR_FINFO_IDENT+#num APR_FINFO_OWNER+#num APR_FINFO_PROT+#num APR_FINFO_NORM+#num APR_FINFO_DIRENT++#starttype struct apr_finfo_t+#  field pool      , Ptr <apr_pool_t>+#  field valid     , <apr_int32_t>+#  field protection, <apr_fileperms_t>+#  field filetype  , <apr_filetype_e>+#  field user      , <apr_uid_t>+#  field group     , <apr_gid_t>+#  field inode     , <apr_ino_t>+#  field device    , <apr_dev_t>+#  field nlink     , <apr_int32_t>+#  field size      , <apr_off_t>+#  field csize     , <apr_off_t>+#  field atime     , <apr_time_t>+#  field mtime     , <apr_time_t>+#  field ctime     , <apr_time_t>+#  field fname     , Ptr CChar+#  field name      , Ptr CChar+#  field filehand  , Ptr <apr_file_t>+#stoptype++#ccall apr_stat      , Ptr <apr_finfo_t> -> Ptr CChar -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_dir_open  , Ptr (Ptr <apr_dir_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_dir_close , Ptr <apr_dir_t> -> IO <apr_status_t>+#ccall apr_dir_read  , Ptr <apr_finfo_t> -> <apr_int32_t> -> Ptr <apr_dir_t> -> IO <apr_status_t>+#ccall apr_dir_rewind, Ptr <apr_dir_t> -> IO <apr_status_t>++#num APR_FILEPATH_NOTABOVEROOT+#num APR_FILEPATH_SECUREROOTTEST+#num APR_FILEPATH_SECUREROOT+#num APR_FILEPATH_NOTRELATIVE+#num APR_FILEPATH_NOTABSOLUTE+#num APR_FILEPATH_NATIVE+#num APR_FILEPATH_TRUENAME++#ccall apr_filepath_root      , Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_filepath_merge     , Ptr (Ptr CChar) -> Ptr CChar -> Ptr CChar -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_filepath_list_split, Ptr (Ptr <apr_array_header_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_filepath_list_merge, Ptr (Ptr CChar) -> Ptr <apr_array_header_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_filepath_get       , Ptr (Ptr CChar) -> <apr_int32_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_filepath_set       , Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>++#num APR_FILEPATH_ENCODING_UNKNOWN+#num APR_FILEPATH_ENCODING_LOCALE+#num APR_FILEPATH_ENCODING_UTF8++#ccall apr_filepath_encoding, Ptr CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>
+ Bindings/APR/File/Types.hsc view
@@ -0,0 +1,7 @@+#include <bindings.dsl.h>+#include <apr_file_io.h>++module Bindings.APR.File.Types where+#strict_import++#opaque_t apr_file_t
+ Bindings/APR/General.hsc view
@@ -0,0 +1,39 @@+#include <bindings.dsl.h>+#include <apr_general.h>++module Bindings.APR.General where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#num FALSE+#num TRUE++#num APR_ASCII_BLANK+#num APR_ASCII_CR+#num APR_ASCII_LF+#num APR_ASCII_TAB++#integral_t apr_signum_t++-- It's impossible to wrap around APR_OFFSET() and APR_OFFSET_OF().++#cinline strcasecmp , Ptr CChar -> Ptr CChar -> IO CInt+#cinline strncasecmp, Ptr CChar -> Ptr CChar -> CSize -> IO CInt++-- What's the correct type for these macros?+#cinline APR_ALIGN, <apr_uint64_t> -> <apr_uint64_t> -> IO <apr_uint64_t>+#cinline APR_ALIGN_DEFAULT, <apr_uint64_t> -> IO <apr_uint64_t>++#cinline memmove, Ptr () -> Ptr () -> CSize -> IO (Ptr ())+#cinline memchr , Ptr () -> CInt -> CSize -> IO (Ptr ())++#ccall apr_initialize    , IO <apr_status_t>+#ccall apr_app_initialize, Ptr CInt -> Ptr (Ptr (Ptr CChar)) -> Ptr (Ptr (Ptr CChar)) -> IO <apr_status_t>+#ccall apr_terminate     , IO ()+#ccall apr_terminate2    , IO ()++#if APR_HAS_RANDOM+#ccall apr_generate_random_bytes, Ptr CUChar -> <apr_size_t> -> IO <apr_status_t>+#endif
+ Bindings/APR/GetOpt.hsc view
@@ -0,0 +1,36 @@+#include <bindings.dsl.h>+#include <apr_getopt.h>++module Bindings.APR.GetOpt where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools++-- apr_getopt_err_fn_t takes varargs so it can't be declared as FunPtr.+#opaque_t apr_getopt_err_fn_t++#starttype struct apr_getopt_t+#  field cont  , Ptr <apr_pool_t>+#  field errfn , Ptr <apr_getopt_err_fn_t>+#  field errarg, Ptr ()+#  field ind   , CInt+#  field opt   , CInt+#  field reset , CInt+#  field argc  , CInt+#  field argv  , Ptr (Ptr CChar)+#  field place , Ptr CChar+#  field interleave, CInt+#  field skip_start, CInt+#  field skip_end  , CInt+#stoptype++#starttype struct apr_getopt_option_t+#  field name       , Ptr CChar+#  field optch      , CInt+#  field has_arg    , CInt+#  field description, Ptr CChar+#stoptype++#ccall apr_getopt_init, Ptr (Ptr <apr_getopt_t>) -> Ptr <apr_pool_t> -> CInt -> Ptr (Ptr CChar) -> IO <apr_status_t>+#ccall apr_getopt     , Ptr <apr_getopt_t> -> Ptr CChar -> Ptr CChar -> Ptr (Ptr CChar) -> IO <apr_status_t>+#ccall apr_getopt_long, Ptr <apr_getopt_t> -> Ptr <apr_getopt_option_t> -> Ptr CInt -> Ptr (Ptr CChar) -> IO <apr_status_t>
+ Bindings/APR/Global/Mutex.hsc view
@@ -0,0 +1,19 @@+#include <bindings.dsl.h>+#include <apr_getopt.h>++module Bindings.APR.Global.Mutex where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.Proc.Mutex++#opaque_t apr_global_mutex_t++#cinline apr_global_mutex_create    , Ptr (Ptr <apr_global_mutex_t>) -> Ptr CChar -> <apr_lockmech_e> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#cinline apr_global_mutex_child_init, Ptr (Ptr <apr_global_mutex_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#cinline apr_global_mutex_lock      , Ptr <apr_global_mutex_t> -> IO <apr_status_t>+#cinline apr_global_mutex_trylock   , Ptr <apr_global_mutex_t> -> IO <apr_status_t>+#cinline apr_global_mutex_unlock    , Ptr <apr_global_mutex_t> -> IO <apr_status_t>+#cinline apr_global_mutex_destroy   , Ptr <apr_global_mutex_t> -> IO <apr_status_t>++#cinline apr_global_mutex_pool_get  , Ptr <apr_global_mutex_t> -> IO (Ptr <apr_pool_t>)
+ Bindings/APR/Hash.hsc view
@@ -0,0 +1,30 @@+#include <bindings.dsl.h>+#include <apr_hash.h>++module Bindings.APR.Hash where+#strict_import+import Bindings.APR+import Bindings.APR.Pools++#num APR_HASH_KEY_STRING++#opaque_t apr_hash_t+#opaque_t apr_hash_index_t++#callback apr_hashfunc_t, Ptr CChar -> Ptr <apr_ssize_t> -> IO CUInt++#ccall apr_hashfunc_default, Ptr CChar -> Ptr <apr_ssize_t> -> IO CUInt+#ccall apr_hash_make       , Ptr <apr_pool_t> -> IO (Ptr <apr_hash_t>)+#ccall apr_hash_make_custom, Ptr <apr_hash_t> -> <apr_hashfunc_t> -> IO (Ptr <apr_hash_t>)+#ccall apr_hash_copy       , Ptr <apr_pool_t> -> Ptr <apr_hash_t> -> IO (Ptr <apr_hash_t>)+#ccall apr_hash_set        , Ptr <apr_hash_t> -> Ptr () -> <apr_ssize_t> -> Ptr () -> IO ()+#ccall apr_hash_get        , Ptr <apr_hash_t> -> Ptr () -> <apr_ssize_t> -> IO (Ptr ())+#ccall apr_hash_first      , Ptr <apr_pool_t> -> Ptr <apr_hash_t> -> IO (Ptr <apr_hash_index_t>)+#ccall apr_hash_next       , Ptr <apr_hash_index_t> -> IO (Ptr <apr_hash_index_t>)+#ccall apr_hash_this       , Ptr <apr_hash_index_t> -> Ptr (Ptr ()) -> Ptr <apr_ssize_t> -> Ptr (Ptr ()) -> IO ()+#ccall apr_hash_count      , Ptr <apr_hash_t> -> IO CUInt+#ccall apr_hash_clear      , Ptr <apr_hash_t> -> IO ()+#ccall apr_hash_overlay    , Ptr <apr_pool_t> -> Ptr <apr_hash_t> -> Ptr <apr_hash_t> -> IO (Ptr <apr_hash_t>)+#ccall apr_hash_merge      , Ptr <apr_pool_t> -> Ptr <apr_hash_t> -> Ptr <apr_hash_t> -> FunPtr (Ptr <apr_pool_t> -> Ptr () -> <apr_ssize_t> -> Ptr () -> Ptr () -> Ptr () -> IO (Ptr ())) -> Ptr () -> IO (Ptr <apr_hash_t>)++#ccall apr_hash_pool_get   , Ptr <apr_hash_t> -> IO (Ptr <apr_pool_t>)
+ Bindings/APR/Lib.hsc view
@@ -0,0 +1,37 @@+#include <bindings.dsl.h>+#include <apr_lib.h>++module Bindings.APR.Lib where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import System.Posix.Types++#num HUGE_STRING_LEN++#starttype struct apr_vformatter_buff_t+#  field curpos, Ptr CChar+#  field endpos, Ptr CChar+#stoptype++#ccall apr_filepath_name_get, Ptr CChar -> IO (Ptr CChar)++#cinline apr_killpg, CPid -> CInt -> IO CInt++-- apr_vformatter takes va_list...++#ccall apr_password_get, Ptr CChar -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>++#cinline apr_isalnum , CInt -> IO CInt+#cinline apr_isalpha , CInt -> IO CInt+#cinline apr_isdigit , CInt -> IO CInt+#cinline apr_isgraph , CInt -> IO CInt+#cinline apr_islower , CInt -> IO CInt+#cinline apr_isascii , CInt -> IO CInt+#cinline apr_isprint , CInt -> IO CInt+#cinline apr_ispunct , CInt -> IO CInt+#cinline apr_isspace , CInt -> IO CInt+#cinline apr_isupper , CInt -> IO CInt+#cinline apr_isxdigit, CInt -> IO CInt+#cinline apr_tolower , CInt -> IO CInt+#cinline apr_toupper , CInt -> IO CInt
+ Bindings/APR/MMap.hsc view
@@ -0,0 +1,34 @@+#include <bindings.dsl.h>+#include <apr_mmap.h>+#include "bindings.apr.ring.h"++module Bindings.APR.MMap where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.File.Types++#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>+#  apr_ring_entry_field link, <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
+ Bindings/APR/Network/IO.hsc view
@@ -0,0 +1,142 @@+#include <bindings.dsl.h>+#include <apr_network_io.h>+#include "bindings.apr.pools.h"+#include "bindings.apr.inherit.h"++module Bindings.APR.Network.IO where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.File.Types+import Bindings.APR.Pools+import Bindings.APR.Time+import Bindings.APR.Want++#num APR_MAX_SECS_TO_LINGER+#num APRMAXHOSTLEN+#globalarray APR_ANYADDR, CChar++#num APR_SO_LINGER+#num APR_SO_KEEPALIVE+#num APR_SO_DEBUG+#num APR_SO_NONBLOCK+#num APR_SO_REUSEADDR+#num APR_SO_SNDBUF+#num APR_SO_RCVBUF+#num APR_SO_DISCONNECTED+#num APR_TCP_NODELAY+#num APR_TCP_NOPUSH+#num APR_RESET_NODELAY+#num APR_INCOMPLETE_READ+#num APR_INCOMPLETE_WRITE+#num APR_IPV6_V6ONLY+#num APR_TCP_DEFER_ACCEPT++#integral_t apr_shutdown_how_e+#num APR_IPV4_ADDR_OK+#num APR_IPV6_ADDR_OK++#num APR_INADDR_NONE++#num APR_INET+#num APR_UNSPEC++#if APR_HAVE_IPV6+#  num APR_INET6+#endif++#num APR_PROTO_TCP+#num APR_PROTO_UDP+#num APR_PROTO_SCTP++#integral_t apr_interface_e+#num APR_LOCAL+#num APR_REMOTE++-- FIXME: How should I wrap apr_inet_addr?++#opaque_t apr_socket_t++#starttype struct apr_hdtr_t+#  field headers    , Ptr <iovec>+#  field numheaders , CInt+#  field trailers   , Ptr <iovec>+#  field numtrailers, CInt+#stoptype++-- FIXME: How should I wrap apr_in_addr_t?++#opaque_t apr_ipsubnet_t++#integral_t apr_port_t++#starttype struct apr_sockaddr_t+#  field pool        , Ptr <apr_pool_t>+#  field hostname    , Ptr CChar+#  field servname    , Ptr CChar+#  field port        , <apr_port_t>+#  field family      , <apr_int32_t>+#  field salen       , <apr_socklen_t>+#  field ipaddr_len  , CInt+#  field addr_str_len, CInt+#  field ipaddr_ptr  , Ptr ()+#  field next        , Ptr <apr_sockaddr_t>+-- FIXME: wrap around sa, sin, sin6, sas+#stoptype++#if APR_HAS_SENDFILE+#  num APR_SENDFILE_DISCONNECT_SOCKET+#endif++#ccall apr_socket_create    , Ptr (Ptr <apr_socket_t>) -> CInt -> CInt -> CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_socket_shutdown  , Ptr <apr_socket_t> -> <apr_shutdown_how_e> -> IO <apr_status_t>+#ccall apr_socket_close     , Ptr <apr_socket_t> -> IO <apr_status_t>+#ccall apr_socket_bind      , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_socket_listen    , Ptr <apr_status_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_socket_accept    , Ptr (Ptr <apr_socket_t>) -> Ptr <apr_socket_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_socket_connect   , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_sockaddr_info_get, Ptr (Ptr <apr_sockaddr_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_port_t> -> <apr_int32_t> -> Ptr <apr_port_t> -> IO <apr_status_t>+#ccall apr_getnameinfo      , Ptr (Ptr CChar) -> Ptr <apr_sockaddr_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_parse_addr_port  , Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> Ptr <apr_port_t> -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_gethostname      , Ptr CChar -> CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_socket_data_get  , Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_socket_t> -> IO <apr_status_t>+#ccall apr_socket_data_set  , Ptr <apr_socket_t> -> Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO <apr_status_t>+#ccall apr_socket_send      , Ptr <apr_socket_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_socket_sendv     , Ptr <apr_socket_t> -> Ptr <iovec> -> <apr_int32_t> -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_socket_sendto    , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> <apr_int32_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_socket_recvfrom  , Ptr <apr_sockaddr_t> -> Ptr <apr_socket_t> -> <apr_int32_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>++#if APR_HAS_SENDFILE+#  ccall apr_socket_sendfile, Ptr <apr_socket_t> -> Ptr <apr_file_t> -> Ptr <apr_hdtr_t> -> Ptr <apr_off_t> -> Ptr <apr_size_t> -> <apr_int32_t> -> IO <apr_status_t>+#endif++#ccall apr_socket_recv       , Ptr <apr_socket_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>+#ccall apr_socket_opt_set    , Ptr <apr_socket_t> -> <apr_int32_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_socket_timeout_set, Ptr <apr_socket_t> -> <apr_interval_time_t> -> IO <apr_status_t>+#ccall apr_socket_opt_get    , Ptr <apr_socket_t> -> <apr_int32_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_socket_timeout_get, Ptr <apr_socket_t> -> Ptr <apr_interval_time_t> -> IO <apr_status_t>+#ccall apr_socket_atmark     , Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>+#ccall apr_socket_addr_get   , Ptr (Ptr <apr_socket_t>) -> <apr_interface_e> -> Ptr <apr_socket_t> -> IO <apr_status_t>+#ccall apr_sockaddr_ip_get   , Ptr (Ptr CChar) -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_sockaddr_ip_getbuf, Ptr CChar -> <apr_size_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_sockaddr_equal    , Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO CInt+#ccall apr_socket_type_get   , Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>+#ccall apr_getservbyname     , Ptr <apr_sockaddr_t> -> Ptr CChar -> IO <apr_status_t>+#ccall apr_ipsubnet_create   , Ptr (Ptr <apr_ipsubnet_t>) -> Ptr CChar -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_ipsubnet_test     , Ptr <apr_ipsubnet_t> -> Ptr <apr_sockaddr_t> -> IO CInt++#if APR_HAS_SO_ACCEPTFILTER+#  ccall apr_socket_accept_filter, Ptr <apr_socket_t> -> Ptr CChar -> Ptr CChar -> IO <apr_status_t>+#endif++#ccall apr_socket_protocol_get, Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>++#apr_pool_accessor socket+#apr_inherit_set   socket+#apr_inherit_unset socket++#ccall apr_mcast_join     , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_mcast_leave    , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>+#ccall apr_mcast_hops     , Ptr <apr_socket_t> -> <apr_byte_t> -> IO <apr_status_t>+#ccall apr_mcast_loopback , Ptr <apr_socket_t> -> <apr_byte_t> -> IO <apr_status_t>+#ccall apr_mcast_interface, Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
+ Bindings/APR/Poll.hsc view
@@ -0,0 +1,61 @@+#include <bindings.dsl.h>+#include <apr_poll.h>++module Bindings.APR.Poll where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.File.Types+import Bindings.APR.Network.IO+import Bindings.APR.Pools+import Bindings.APR.Time++#num APR_POLLIN+#num APR_POLLPRI+#num APR_POLLOUT+#num APR_POLLERR+#num APR_POLLHUP+#num APR_POLLNVAL++#num APR_POLLSET_THREADSAFE+#num APR_POLLSET_NOCOPY++#integral_t apr_datatype_e+#num APR_NO_DESC+#num APR_POLL_SOCKET+#num APR_POLL_FILE+#num APR_POLL_LASTDESC++#starttype apr_descriptor+#  union_field f, Ptr <apr_file_t>+#  union_field s, Ptr <apr_socket_t>+#stoptype++#starttype struct apr_pollfd_t+#  field p          , Ptr <apr_pool_t>+#  field desc_type  , <apr_datatype_e>+#  field reqevents  , <apr_int16_t>+#  field rtnevents  , <apr_int16_t>+#  field desc       , <apr_descriptor>+#  field client_data, Ptr ()+#stoptype++#opaque_t apr_pollset_t++#ccall apr_pollset_create , Ptr (Ptr <apr_pollset_t>) -> <apr_uint32_t> -> Ptr <apr_pool_t> -> <apr_uint32_t> -> IO <apr_status_t>+#ccall apr_pollset_destroy, Ptr <apr_pollset_t> -> IO <apr_status_t>+#ccall apr_pollset_add    , Ptr <apr_pollset_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>+#ccall apr_pollset_remove , Ptr <apr_pollset_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>+#ccall apr_pollset_poll   , Ptr <apr_pollset_t> -> <apr_interval_time_t> -> Ptr <apr_int32_t> -> Ptr (Ptr <apr_pollfd_t>) -> IO <apr_status_t>++#ccall apr_poll, Ptr <apr_pollfd_t> -> <apr_int32_t> -> Ptr <apr_int32_t> -> <apr_interval_time_t> -> IO <apr_status_t>++#opaque_t apr_pollcb_t++#ccall apr_pollcb_create, Ptr (Ptr <apr_pollcb_t>) -> <apr_uint32_t> -> Ptr <apr_pool_t> -> <apr_uint32_t> -> IO <apr_status_t>+#ccall apr_pollcb_add   , Ptr <apr_pollcb_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>+#ccall apr_pollcb_remove, Ptr <apr_pollcb_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>++#callback apr_pollcb_cb_t, Ptr () -> Ptr <apr_pollfd_t> -> IO <apr_status_t>++#ccall apr_pollcb_poll, Ptr <apr_pollcb_t> -> <apr_interval_time_t> -> <apr_pollcb_cb_t> -> Ptr () -> IO <apr_status_t>
+ Bindings/APR/Pools.hsc view
@@ -0,0 +1,95 @@+#include <bindings.dsl.h>+#include <apr_pools.h>++module Bindings.APR.Pools where+#strict_import+import Bindings.APR+import Bindings.APR.Allocator.Types+import Bindings.APR.ErrNo++#opaque_t apr_pool_t++#num APR_POOL_DEBUG++#callback apr_abortfunc_t, CInt -> IO CInt++#ccall apr_pool_initialize, IO <apr_status_t>+#ccall apr_pool_terminate , IO ()++#if APR_POOL_DEBUG++#  cinline apr_pool_create_ex, Ptr (Ptr <apr_pool_t>) -> Ptr <apr_pool_t> -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>+#  cinline apr_pool_create_core_ex, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>+#  cinline apr_pool_create_unmanaged_ex, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>++#  ccall apr_pool_create_ex_debug, Ptr (Ptr <apr_pool_t>) -> Ptr <apr_pool_t> -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> Ptr CChar -> IO <apr_status_t>+#  ccall apr_pool_create_core_ex_debug, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> Ptr CChar -> IO <apr_status_t>+#  ccall apr_pool_create_unmanaged_ex_debug, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> Ptr CChar -> IO <apr_status_t>++#else++#  ccall apr_pool_create_ex, Ptr (Ptr <apr_pool_t>) -> Ptr <apr_pool_t> -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>+#  ccall apr_pool_create_core_ex, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>+#  ccall apr_pool_create_unmanaged_ex, Ptr (Ptr <apr_pool_t>) -> <apr_abortfunc_t> -> Ptr <apr_allocator_t> -> IO <apr_status_t>++#endif++#cinline apr_pool_create, Ptr (Ptr <apr_pool_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#cinline apr_pool_create_core, Ptr (Ptr <apr_pool_t>) -> IO <apr_status_t>+#cinline apr_pool_create_unmanaged, Ptr (Ptr <apr_pool_t>) -> IO <apr_status_t>++#ccall apr_pool_allocator_get, Ptr <apr_pool_t> -> IO (Ptr <apr_allocator_t>)++#if APR_POOL_DEBUG+#  cinline apr_pool_clear, Ptr <apr_pool_t> -> IO ()+#  ccall   apr_pool_clear_debug, Ptr <apr_pool_t> -> Ptr CChar -> IO ()+#else+#  ccall   apr_pool_clear, Ptr <apr_pool_t> -> IO ()+#endif++#if APR_POOL_DEBUG+#  cinline apr_pool_destroy, Ptr <apr_pool_t> -> IO ()+#  ccall   apr_pool_destroy_debug, Ptr <apr_pool_t> -> Ptr CChar -> IO ()+#else+#  ccall   apr_pool_destroy, Ptr <apr_pool_t> -> IO ()+#endif++#if APR_POOL_DEBUG+#  cinline apr_palloc, Ptr <apr_pool_t> -> <apr_size_t> -> IO (Ptr ())+#  ccall   apr_palloc_debug, Ptr <apr_pool_t> -> <apr_size_t> -> Ptr CChar -> IO (Ptr ())+#else+#  ccall   apr_palloc, Ptr <apr_pool_t> -> <apr_size_t> -> IO (Ptr ())+#endif++#cinline apr_pcalloc, Ptr <apr_pool_t> -> <apr_size_t> -> IO (Ptr ())+#if APR_POOL_DEBUG+#  ccall apr_pcalloc_debug, Ptr <apr_pool_t> -> <apr_size_t> -> Ptr CChar -> IO (Ptr ())+#endif++#ccall apr_pool_abort_set  , <apr_abortfunc_t> -> Ptr <apr_pool_t> -> IO ()+#ccall apr_pool_abort_get  , Ptr <apr_pool_t> -> IO <apr_abortfunc_t>+#ccall apr_pool_parent_get , Ptr <apr_pool_t> -> IO (Ptr <apr_pool_t>)+#ccall apr_pool_is_ancestor, Ptr <apr_pool_t> -> Ptr <apr_pool_t> -> IO CInt+#ccall apr_pool_tag        , Ptr <apr_pool_t> -> Ptr CChar -> IO ()++#ccall apr_pool_userdata_set , Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_pool_userdata_setn, Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_pool_userdata_get , Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>++#ccall apr_pool_cleanup_register    , Ptr <apr_pool_t> -> Ptr () -> FunPtr (Ptr () -> IO <apr_status_t>) -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO ()+#ccall apr_pool_pre_cleanup_register, Ptr <apr_pool_t> -> Ptr () -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO ()+#ccall apr_pool_cleanup_kill        , Ptr <apr_pool_t> -> Ptr () -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO ()+#ccall apr_pool_child_cleanup_set   , Ptr <apr_pool_t> -> Ptr () -> FunPtr (Ptr () -> IO <apr_status_t>) -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO ()+#ccall apr_pool_cleanup_run         , Ptr <apr_pool_t> -> Ptr () -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO <apr_status_t>+#ccall apr_pool_cleanup_null        , Ptr () -> IO <apr_status_t>+#ccall apr_pool_cleanup_for_exec    , Ptr () -> IO ()++#if APR_POOL_DEBUG+#  ccall apr_pool_join     , Ptr <apr_pool_t> -> Ptr <apr_pool_t> -> IO ()+#  ccall apr_pool_find     , Ptr () -> IO (Ptr <apr_pool_t>)+#  ccall apr_pool_num_bytes, Ptr <apr_pool_t> -> CInt -> IO <apr_size_t>+#  ccall apr_pool_lock     , Ptr <apr_pool_t> -> CInt -> IO ()+#else+#  cinline apr_pool_join, Ptr <apr_pool_t> -> Ptr <apr_pool_t> -> IO ()+#  cinline apr_pool_lock, Ptr <apr_pool_t> -> CInt -> IO ()+#endif
+ Bindings/APR/Portable.hsc view
@@ -0,0 +1,82 @@+#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: sockaddr+-- #  field local   , Ptr <sockaddr>+-- #  field remote  , Ptr <sockaddr>+#  field family  , CInt+#  field type    , CInt+#  field protocol, CInt+#stoptype++#opaque_t apr_os_global_mutex_t+#cinline apr_os_global_mutex_get, Ptr <apr_os_global_mutex_t> -> Ptr <apr_global_mutex_t> -> IO <apr_status_t>++#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)
+ Bindings/APR/Proc/Mutex.hsc view
@@ -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>)
+ Bindings/APR/Random.hsc view
@@ -0,0 +1,29 @@+#include <bindings.dsl.h>+#include <apr_random.h>++module Bindings.APR.Random where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.Thread.Proc++#opaque_t apr_crypto_hash_t++#callback apr_crypto_hash_init_t  , Ptr <apr_crypto_hash_t> -> IO ()+#callback apr_crypto_hash_add_t   , Ptr <apr_crypto_hash_t> -> Ptr () -> <apr_size_t> -> IO ()+#callback apr_crypto_hash_finish_t, Ptr <apr_crypto_hash_t> -> Ptr CUChar -> IO ()++#ccall apr_crypto_sha256_new, Ptr <apr_pool_t> -> IO (Ptr <apr_crypto_hash_t>)++#opaque_t apr_random_t++#ccall apr_random_init          , Ptr <apr_random_t> -> Ptr <apr_pool_t> -> Ptr <apr_crypto_hash_t> -> Ptr <apr_crypto_hash_t> -> Ptr <apr_crypto_hash_t> -> IO ()+#ccall apr_random_standard_new  , Ptr <apr_pool_t> -> IO (Ptr <apr_random_t>)+#ccall apr_random_add_entropy   , Ptr <apr_random_t> -> Ptr () -> <apr_size_t> -> IO ()+#ccall apr_random_insecure_bytes, Ptr <apr_random_t> -> Ptr () -> <apr_size_t> -> IO <apr_status_t>+#ccall apr_random_secure_bytes  , Ptr <apr_random_t> -> Ptr () -> <apr_size_t> -> IO <apr_status_t>+#ccall apr_random_barrier       , Ptr <apr_random_t> -> IO ()+#ccall apr_random_secure_ready  , Ptr <apr_random_t> -> IO <apr_status_t>+#ccall apr_random_insecure_ready, Ptr <apr_random_t> -> IO <apr_status_t>+#ccall apr_random_after_fork    , Ptr <apr_proc_t> -> IO ()
+ Bindings/APR/Shm.hsc view
@@ -0,0 +1,21 @@+#include <bindings.dsl.h>+#include <apr_shm.h>+#include "bindings.apr.pools.h"++module Bindings.APR.Shm where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#opaque_t apr_shm_t++#ccall apr_shm_create      , Ptr (Ptr <apr_shm_t>) -> <apr_size_t> -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_shm_remove      , Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_shm_destroy     , Ptr <apr_shm_t> -> IO <apr_status_t>+#ccall apr_shm_attach      , Ptr (Ptr <apr_shm_t>) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_shm_detach      , Ptr <apr_shm_t> -> IO <apr_status_t>+#ccall apr_shm_baseaddr_get, Ptr <apr_shm_t> -> IO (Ptr ())+#ccall apr_shm_size_get    , Ptr <apr_shm_t> -> IO <apr_size_t>++#apr_pool_accessor shm
+ Bindings/APR/Signal.hsc view
@@ -0,0 +1,17 @@+#include <bindings.dsl.h>+#include <apr_signal.h>++module Bindings.APR.Signal where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#callback apr_sigfunc_t, CInt -> IO ()++#cinline apr_signal, CInt -> <apr_sigfunc_t> -> IO <apr_sigfunc_t>++#ccall apr_signal_description_get, CInt -> IO (Ptr CChar)+#ccall apr_signal_init           , Ptr <apr_pool_t> -> IO ()+#ccall apr_signal_block          , CInt -> IO <apr_status_t>+#ccall apr_signal_unblock        , CInt -> IO <apr_status_t>
+ Bindings/APR/Strings.hsc view
@@ -0,0 +1,33 @@+#include <bindings.dsl.h>+#include <apr_strings.h>++module Bindings.APR.Strings where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.Want++#ccall apr_strnatcmp    , Ptr CChar -> Ptr CChar -> IO CInt+#ccall apr_strnatcasecmp, Ptr CChar -> Ptr CChar -> IO CInt+#ccall apr_pstrdup      , Ptr <apr_pool_t> -> Ptr CChar -> IO (Ptr CChar)+#ccall apr_pstrmemdup   , Ptr <apr_pool_t> -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)+#ccall apr_pstrndup     , Ptr <apr_pool_t> -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)+#ccall apr_pmemdup      , Ptr <apr_pool_t> -> Ptr () -> <apr_size_t> -> IO (Ptr ())+-- FIXME: apr_pstrcat+#ccall apr_pstrcatv     , Ptr <apr_pool_t> -> Ptr <iovec> -> <apr_size_t> -> Ptr <apr_size_t> -> IO (Ptr CChar)+-- FIXME: apr_pvsprintf+-- FIXME: apr_psprintf+#ccall apr_cpystrn         , Ptr CChar -> Ptr CChar -> <apr_size_t> -> IO (Ptr CChar)+#ccall apr_collapse_spaces , Ptr CChar -> Ptr CChar -> IO (Ptr CChar)+#ccall apr_tokenize_to_argv, Ptr CChar -> Ptr (Ptr (Ptr CChar)) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_strtok          , Ptr CChar -> Ptr CChar -> Ptr (Ptr CChar) -> IO (Ptr CChar)+-- FIXME: apr_snprintf+-- FIXME: apr_vsnprintf+#ccall apr_itoa         , Ptr <apr_pool_t> -> CInt -> IO (Ptr CChar)+#ccall apr_ltoa         , Ptr <apr_pool_t> -> CLong -> IO (Ptr CChar)+#ccall apr_off_t_toa    , Ptr <apr_pool_t> -> <apr_off_t> -> IO (Ptr CChar)+#ccall apr_strtoff      , Ptr <apr_off_t> -> Ptr CChar -> Ptr (Ptr CChar) -> CInt -> IO <apr_status_t>+#ccall apr_strtoi64     , Ptr CChar -> Ptr (Ptr CChar) -> CInt -> IO <apr_int64_t>+#ccall apr_atoi64       , Ptr CChar -> IO <apr_int64_t>+#ccall apr_strfsize     , <apr_off_t> -> Ptr CChar -> IO (Ptr CChar)
+ Bindings/APR/Support.hsc view
@@ -0,0 +1,10 @@+#include <bindings.dsl.h>+#include <apr_shm.h>++module Bindings.APR.Support where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.File.Types+import Bindings.APR.Network.IO++#ccall apr_wait_for_io_or_timeout, Ptr <apr_file_t> -> Ptr <apr_socket_t> -> CInt -> IO <apr_status_t>
+ Bindings/APR/Tables.hsc view
@@ -0,0 +1,67 @@+#include <bindings.dsl.h>+#include <apr_tables.h>++module Bindings.APR.Tables where+#strict_import+import Bindings.APR+import Bindings.APR.Pools++#opaque_t apr_table_t++#starttype struct apr_array_header_t+#  field pool    , Ptr <apr_pool_t>+#  field elt_size, CInt+#  field nelts   , CInt+#  field nalloc  , CInt+#  field elts    , Ptr CChar+#stoptype++#starttype struct apr_table_entry_t+#  field key, Ptr CChar+#  field val, Ptr CChar+#  field key_checksum, <apr_uint32_t>+#stoptype++#ccall apr_table_elts    , Ptr <apr_table_t> -> IO (Ptr <apr_array_header_t>)++#ccall apr_is_empty_table, Ptr <apr_table_t> -> IO CInt+#ccall apr_is_empty_array, Ptr <apr_array_header_t> -> IO CInt++#ccall apr_array_make    , Ptr <apr_pool_t> -> CInt -> CInt -> IO (Ptr <apr_array_header_t>)+#ccall apr_array_push    , Ptr <apr_array_header_t> -> IO (Ptr ())++-- It's impossible to wrap around APR_ARRAY_IDX and APR_ARRAY_PUSH as+-- they take C types as their arguments.++#ccall apr_array_pop     , Ptr <apr_array_header_t> -> IO (Ptr ())+#ccall apr_array_clear   , Ptr <apr_array_header_t> -> IO ()+#ccall apr_array_cat     , Ptr <apr_array_header_t> -> Ptr <apr_array_header_t> -> IO ()+#ccall apr_array_copy    , Ptr <apr_pool_t> -> Ptr <apr_array_header_t> -> IO (Ptr <apr_array_header_t>)+#ccall apr_array_copy_hdr, Ptr <apr_pool_t> -> Ptr <apr_array_header_t> -> IO (Ptr <apr_array_header_t>)+#ccall apr_array_append  , Ptr <apr_pool_t> -> Ptr <apr_array_header_t> -> Ptr <apr_array_header_t> -> IO (Ptr <apr_array_header_t>)+#ccall apr_array_pstrcat , Ptr <apr_pool_t> -> Ptr <apr_array_header_t> -> CChar -> IO (Ptr CChar)++#ccall apr_table_make  , Ptr <apr_pool_t> -> CInt -> IO (Ptr <apr_table_t>)+#ccall apr_table_copy  , Ptr <apr_pool_t> -> Ptr <apr_table_t> -> IO (Ptr <apr_table_t>)+#ccall apr_table_clone , Ptr <apr_pool_t> -> Ptr <apr_table_t> -> IO (Ptr <apr_table_t>)+#ccall apr_table_clear , Ptr <apr_table_t> -> IO ()+#ccall apr_table_get   , Ptr <apr_table_t> -> Ptr CChar -> IO (Ptr CChar)+#ccall apr_table_set   , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_setn  , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_unset , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_merge , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_mergen, Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_add   , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_addn  , Ptr <apr_table_t> -> Ptr CChar -> Ptr CChar -> IO ()+#ccall apr_table_overlay, Ptr <apr_pool_t> -> Ptr <apr_table_t> -> Ptr <apr_table_t> -> IO (Ptr <apr_table_t>)++#callback apr_table_do_callback_fn_t, Ptr () -> Ptr CChar -> Ptr CChar -> IO CInt++-- It's impossible to wrap around apr_table_do and apr_table_vdo as+-- they take varargs.++#num APR_OVERLAP_TABLES_SET+#num APR_OVERLAP_TABLES_MERGE++#ccall apr_table_overlap , Ptr <apr_table_t> -> Ptr <apr_table_t> -> CUInt -> IO ()+#ccall apr_table_compress, Ptr <apr_table_t> -> CUInt -> IO ()
+ Bindings/APR/Thread/Cond.hsc view
@@ -0,0 +1,24 @@+#include <bindings.dsl.h>+#include <apr_thread_cond.h>++module Bindings.APR.Thread.Cond where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools+import Bindings.APR.Thread.Mutex+import Bindings.APR.Time++#if APR_HAS_THREADS++#  opaque_t apr_thread_cond_t++#  ccall apr_thread_cond_create   , Ptr (Ptr <apr_thread_cond_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_thread_cond_wait     , Ptr <apr_thread_cond_t> -> Ptr <apr_thread_mutex_t> -> IO <apr_status_t>+#  ccall apr_thread_cond_timedwait, Ptr <apr_thread_cond_t> -> Ptr <apr_thread_mutex_t> -> <apr_interval_time_t> -> IO <apr_status_t>+#  ccall apr_thread_cond_signal   , Ptr <apr_thread_cond_t> -> IO <apr_status_t>+#  ccall apr_thread_cond_broadcast, Ptr <apr_thread_cond_t> -> IO <apr_status_t>+#  ccall apr_thread_cond_destroy  , Ptr <apr_thread_cond_t> -> IO <apr_status_t>++#  ccall apr_thread_cond_pool_get , Ptr <apr_thread_cond_t> -> IO (Ptr <apr_pool_t>)++#endif
+ Bindings/APR/Thread/Mutex.hsc view
@@ -0,0 +1,21 @@+#include <bindings.dsl.h>+#include <apr_thread_mutex.h>++module Bindings.APR.Thread.Mutex where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#opaque_t apr_thread_mutex_t++#num APR_THREAD_MUTEX_DEFAULT+#num APR_THREAD_MUTEX_NESTED+#num APR_THREAD_MUTEX_UNNESTED++#ccall apr_thread_mutex_create , Ptr <apr_thread_mutex_t> -> CUInt -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_thread_mutex_lock   , Ptr <apr_thread_mutex_t> -> IO <apr_status_t>+#ccall apr_thread_mutex_trylock, Ptr <apr_thread_mutex_t> -> IO <apr_status_t>+#ccall apr_thread_mutex_unlock , Ptr <apr_thread_mutex_t> -> IO <apr_status_t>+#ccall apr_thread_mutex_destroy, Ptr <apr_thread_mutex_t> -> IO <apr_status_t>++#ccall apr_thread_mutex_pool_get, Ptr <apr_thread_mutex_t> -> IO (Ptr <apr_pool_t>)
+ Bindings/APR/Thread/Proc.hsc view
@@ -0,0 +1,161 @@+#include <bindings.dsl.h>+#include <apr_thread_proc.h>++module Bindings.APR.Thread.Proc where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.File.Types+import Bindings.APR.Pools+import System.Posix.Types++#integral_t apr_cmdtype_e+#num APR_SHELLCMD+#num APR_PROGRAM+#num APR_PROGRAM_ENV+#num APR_PROGRAM_PATH+#num APR_SHELLCMD_ENV++#integral_t apr_wait_how_e+#num APR_WAIT+#num APR_NOWAIT++#integral_t apr_exit_why_e+#num APR_PROC_EXIT+#num APR_PROC_SIGNAL+#num APR_PROC_SIGNAL_CORE++#cinline APR_PROC_CHECK_EXIT     , Ptr <apr_exit_why_e> -> IO CInt+#cinline APR_PROC_CHECK_SIGNALED , Ptr <apr_exit_why_e> -> IO CInt+#cinline APR_PROC_CHECK_CORE_DUMP, Ptr <apr_exit_why_e> -> IO CInt++#num APR_NO_PIPE+#num APR_FULL_BLOCK+#num APR_FULL_NONBLOCK+#num APR_PARENT_BLOCK+#num APR_CHILD_BLOCK+#num APR_NO_FILE++#num APR_READ_BLOCK+#num APR_WRITE_BLOCK++#num APR_LIMIT_CPU+#num APR_LIMIT_MEM+#num APR_LIMIT_NPROC+#num APR_LIMIT_NOFILE++#num APR_OC_REASON_DEATH+#num APR_OC_REASON_UNWRITABLE+#num APR_OC_REASON_RESTART+#num APR_OC_REASON_UNREGISTER+#num APR_OC_REASON_LOST+#num APR_OC_REASON_RUNNING++#starttype struct apr_proc_t+#  field pid, CPid+#  field in , Ptr <apr_file_t>+#  field out, Ptr <apr_file_t>+#  field err, Ptr <apr_file_t>+#  if APR_HAS_PROC_INVOKED+#    field invoked, Ptr CCHar+#  endif+#stoptype++#callback apr_child_errfn_t, Ptr <apr_pool_t> -> <apr_status_t> -> Ptr CChar -> IO ()++#opaque_t apr_thread_t+#opaque_t apr_threadattr_t+#opaque_t apr_procattr_t+#opaque_t apr_thread_once_t+#opaque_t apr_threadkey_t+#opaque_t apr_other_child_rec_t++#callback apr_thread_start_t, Ptr <apr_thread_t> -> Ptr () -> IO (Ptr ())++#integral_t apr_kill_conditions_e+#num APR_KILL_NEVER+#num APR_KILL_ALWAYS+#num APR_KILL_AFTER_TIMEOUT+#num APR_JUST_WAIT+#num APR_KILL_ONLY_ONCE++#if APR_HAS_THREADS++#  ccall apr_threadattr_create       , Ptr (Ptr <apr_threadattr_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_threadattr_detach_set   , Ptr <apr_threadattr_t> -> <apr_int32_t> -> IO <apr_status_t>+#  ccall apr_threadattr_detach_get   , Ptr <apr_threadattr_t> -> IO <apr_status_t>+#  ccall apr_threadattr_stacksize_set, Ptr <apr_threadattr_t> -> <apr_size_t> -> IO <apr_status_t>+#  ccall apr_threadattr_guardsize_set, Ptr <apr_threadattr_t> -> <apr_size_t> -> IO <apr_status_t>++#  ccall apr_thread_create   , Ptr (Ptr <apr_thread_t>) -> Ptr <apr_threadattr_t> -> <apr_thread_start_t> -> Ptr () -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_thread_exit     , Ptr <apr_thread_t> -> <apr_status_t> -> IO <apr_status_t>+#  ccall apr_thread_join     , Ptr <apr_status_t> -> Ptr <apr_thread_t> -> IO <apr_status_t>+#  ccall apr_thread_yield    , IO ()++#  ccall apr_thread_once_init, Ptr (Ptr <apr_thread_once_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_thread_once     , Ptr <apr_thread_once_t> -> FunPtr (IO ()) -> IO <apr_status_t>++#  ccall apr_thread_detach   , Ptr <apr_thread_t> -> IO <apr_status_t>+#  ccall apr_thread_data_get , Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_thread_t> -> IO <apr_status_t>+#  ccall apr_thread_data_set , Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> Ptr <apr_thread_t> -> IO <apr_status_t>++#  ccall apr_threadkey_private_create, Ptr (Ptr <apr_threadkey_t>) -> FunPtr (Ptr () -> IO ()) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall apr_threadkey_private_get   , Ptr (Ptr ()) -> Ptr <apr_threadkey_t> -> IO <apr_status_t>+#  ccall apr_threadkey_private_set   , Ptr () -> Ptr <apr_threadkey_t> -> IO <apr_status_t>+#  ccall apr_threadkey_private_delete, Ptr <apr_threadkey_t> -> Ptr <apr_status_t>++#  ccall apr_threadkey_data_get, Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_threadkey_t> -> IO <apr_status_t>+#  ccall apr_threadkey_data_set, Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> Ptr <apr_threadkey_t> -> IO <apr_status_t>++#endif++#ccall apr_procattr_create       , Ptr (Ptr <apr_procattr_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_procattr_io_set       , Ptr <apr_procattr_t> -> <apr_int32_t> -> <apr_int32_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_procattr_child_in_set , Ptr <apr_procattr_t> -> Ptr <apr_file_t> -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_procattr_child_out_set, Ptr <apr_procattr_t> -> Ptr <apr_file_t> -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_procattr_child_err_set, Ptr <apr_procattr_t> -> Ptr <apr_file_t> -> Ptr <apr_file_t> -> IO <apr_status_t>+#ccall apr_procattr_dir_set      , Ptr <apr_procattr_t> -> Ptr CChar -> IO <apr_status_t>+#ccall apr_procattr_cmdtype_set  , Ptr <apr_procattr_t> -> <apr_cmdtype_e> -> IO <apr_status_t>+#ccall apr_procattr_detach_set   , Ptr <apr_procattr_t> -> <apr_int32_t> -> IO <apr_status_t>++#if APR_HAVE_STRUCT_RLIMIT+-- FIXME: rlimit+-- #  ccall apr_procattr_limit_set  , Ptr <apr_procattr_t> -> <apr_int32_t> -> Ptr <rlimit> -> IO <apr_status_t>+#endif++#ccall apr_procattr_child_errfn_set, Ptr <apr_procattr_t> -> <apr_child_errfn_t> -> IO <apr_status_t>+#ccall apr_procattr_error_check_set, Ptr <apr_procattr_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_procattr_addrspace_set  , Ptr <apr_procattr_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_procattr_user_set       , Ptr <apr_procattr_t> -> Ptr CChar -> Ptr CChar -> IO <apr_status_t>+#ccall apr_procattr_group_set      , Ptr <apr_procattr_t> -> Ptr CChar -> Ptr <apr_status_t>++#if APR_HAS_FORK+#  ccall apr_proc_fork, Ptr <apr_proc_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#endif++#ccall apr_proc_create        , Ptr <apr_proc_t> -> Ptr CChar -> Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> Ptr <apr_procattr_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#ccall apr_proc_wait          , Ptr <apr_proc_t> -> Ptr CInt -> Ptr <apr_exit_why_e> -> <apr_wait_how_e> -> IO <apr_status_t>+#ccall apr_proc_wait_all_procs, Ptr <apr_proc_t> -> Ptr CInt -> Ptr <apr_exit_why_e> -> <apr_wait_how_e> -> Ptr <apr_pool_t> -> IO <apr_status_t>++#num APR_PROC_DETACH_FOREGROUND+#num APR_PROC_DETACH_DAEMONIZE++#ccall apr_proc_detach                 , CInt -> IO <apr_status_t>+#ccall apr_proc_other_child_register   , Ptr <apr_proc_t> -> FunPtr (CInt -> Ptr () -> CInt -> IO ()) -> Ptr () -> Ptr <apr_file_t> -> Ptr <apr_pool_t> -> IO ()+#ccall apr_proc_other_child_unregister , Ptr () -> IO ()+#ccall apr_proc_other_child_alert      , Ptr <apr_proc_t> -> CInt -> CInt -> IO <apr_status_t>+#ccall apr_proc_other_child_refresh    , Ptr <apr_other_child_rec_t> -> CInt -> IO ()+#ccall apr_proc_other_child_refresh_all, CInt -> IO ()+#ccall apr_proc_kill                   , Ptr <apr_proc_t> -> CInt -> IO <apr_status_t>+#ccall apr_pool_note_subprocess        , Ptr <apr_pool_t> -> Ptr <apr_pool_t> -> <apr_kill_conditions_e> -> IO ()++#if APR_HAS_THREADS++#  if (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2)+#    ccall apr_setup_signal_thread, IO <apr_status_t>+#    ccall apr_signal_thread      , FunPtr (CInt -> IO CInt) -> IO <apr_status_t>+#  endif++#  ccall apr_thread_pool_get, Ptr <apr_thread_t> -> IO (Ptr <apr_pool_t>)++#endif
+ Bindings/APR/Thread/RWLock.hsc view
@@ -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>)
+ Bindings/APR/Time.hsc view
@@ -0,0 +1,62 @@+#include <bindings.dsl.h>+#include <apr_time.h>++module Bindings.APR.Time where+#strict_import+import Bindings.APR+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#globalvar apr_month_snames, Ptr (Ptr CChar)+#globalvar apr_day_snames  , Ptr (Ptr CChar)++#integral_t apr_time_t+#globalarray APR_TIME_T_FMT, CChar++#integral_t apr_interval_time_t+#integral_t apr_short_interval_time_t++#num APR_USEC_PER_SEC++#cinline apr_time_sec , <apr_time_t> -> IO <apr_time_t>+#cinline apr_time_usec, <apr_time_t> -> IO <apr_time_t>+#cinline apr_time_msec, <apr_time_t> -> IO <apr_time_t>+#cinline apr_time_as_msec , <apr_time_t> -> IO <apr_time_t>+#cinline apr_time_from_sec, <apr_time_t> -> IO <apr_time_t>+#cinline apr_time_make, <apr_time_t> -> <apr_time_t> -> IO <apr_time_t>++#ccall apr_time_now, IO <apr_time_t>++#starttype struct apr_time_exp_t+#  field tm_usec, <apr_int32_t>+#  field tm_sec , <apr_int32_t>+#  field tm_min , <apr_int32_t>+#  field tm_hour, <apr_int32_t>+#  field tm_mday, <apr_int32_t>+#  field tm_mon , <apr_int32_t>+#  field tm_year, <apr_int32_t>+#  field tm_wday, <apr_int32_t>+#  field tm_yday, <apr_int32_t>+#  field tm_isdst , <apr_int32_t>+#  field tm_gmtoff, <apr_int32_t>+#stoptype++#ccall apr_time_ansi_put, Ptr <apr_time_t> -> CTime -> IO <apr_status_t>++#ccall apr_time_exp_tz , Ptr <apr_time_exp_t> -> <apr_time_t> -> <apr_int32_t> -> IO <apr_status_t>+#ccall apr_time_exp_gmt, Ptr <apr_time_exp_t> -> <apr_time_t> -> IO <apr_status_t>+#ccall apr_time_exp_lt , Ptr <apr_time_exp_t> -> <apr_time_t> -> IO <apr_status_t>+#ccall apr_time_exp_get    , Ptr <apr_time_t> -> Ptr <apr_time_exp_t> -> IO <apr_status_t>+#ccall apr_time_exp_gmt_get, Ptr <apr_time_t> -> Ptr <apr_time_exp_t> -> IO <apr_status_t>++#ccall apr_sleep, <apr_interval_time_t> -> IO ()++#num   APR_RFC822_DATE_LEN+#ccall apr_rfc822_date, Ptr CChar -> <apr_time_t> -> IO <apr_status_t>++#num   APR_CTIME_LEN+#ccall apr_ctime, Ptr CChar -> <apr_time_t> -> IO <apr_status_t>++#ccall apr_strftime, Ptr CChar -> Ptr <apr_size_t> -> <apr_size_t> -> Ptr CChar -> Ptr <apr_time_exp_t> -> IO <apr_status_t>++#ccall apr_time_clock_hires, Ptr <apr_pool_t> -> IO ()
+ Bindings/APR/User.hsc view
@@ -0,0 +1,24 @@+#include <bindings.dsl.h>+#include <apr_user.h>++module Bindings.APR.User where+#strict_import+import Bindings.APR.ErrNo+import Bindings.APR.Pools++#integral_t apr_uid_t+#integral_t apr_gid_t++#if APR_HAS_USER++#  ccall   apr_uid_current     , Ptr <apr_uid_t> -> Ptr <apr_gid_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall   apr_uid_name_get    , Ptr (Ptr CChar) -> <apr_uid_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall   apr_uid_get         , Ptr <apr_uid_t> -> Ptr <apr_gid_t> -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall   apr_uid_homepath_get, Ptr (Ptr CChar) -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  cinline apr_uid_compare     , <apr_uid_t> -> <apr_uid_t> -> IO <apr_status_t>++#  ccall   apr_gid_name_get    , Ptr (Ptr CChar) -> <apr_gid_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  ccall   apr_gid_get         , Ptr <apr_gid_t> -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>+#  cinline apr_gid_compare     , <apr_gid_t> -> <apr_gid_t> -> IO <apr_status_t>++#endif
+ Bindings/APR/Version.hsc view
@@ -0,0 +1,27 @@+#include <bindings.dsl.h>+#include <apr_version.h>++module Bindings.APR.Version where+#strict_import++#num APR_MAJOR_VERSION+#num APR_MINOR_VERSION+#num APR_PATCH_VERSION++#cinline APR_VERSION_AT_LEAST, CInt -> CInt -> CInt -> IO CInt++#globalarray APR_VERSION_STRING, CChar++#if !defined(APR_VERSION_ONLY)++#  starttype apr_version_t+#    field major , CInt+#    field minor , CInt+#    field patch , CInt+#    field is_dev, CInt+#  stoptype++#  ccall apr_version, Ptr <apr_version_t> -> IO ()+#  ccall apr_version_string, IO (Ptr CChar)++#endif
+ Bindings/APR/Want.hsc view
@@ -0,0 +1,10 @@+#include <bindings.dsl.h>+#include <apr_want.h>++module Bindings.APR.Want where+#strict_import++#starttype struct iovec+#  field iov_base, Ptr CChar+#  field iov_len , CSize+#stoptype
+ COPYING view
@@ -0,0 +1,29 @@+<!-- -*- xml -*-++bindings-apr はパブリックドメインに在ります。+bindings-apr is in the public domain.++See http://creativecommons.org/licenses/publicdomain/++-->++<rdf:RDF xmlns="http://web.resource.org/cc/"+	     xmlns:dc="http://purl.org/dc/elements/1.1/"+	     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">+  <Work rdf:about="http://cielonegro.org/Bindings-APR.html">+	<dc:title>bindings-apr</dc:title>+	<dc:rights>+      <Agent>+	    <dc:title>PHO</dc:title>+	  </Agent>+    </dc:rights>+	<license rdf:resource="http://web.resource.org/cc/PublicDomain" />+  </Work>+      +  <License rdf:about="http://web.resource.org/cc/PublicDomain">+	<permits rdf:resource="http://web.resource.org/cc/Reproduction" />+	<permits rdf:resource="http://web.resource.org/cc/Distribution" />+	<permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />+  </License>++</rdf:RDF>
+ Setup.hs view
@@ -0,0 +1,4 @@+#!/usr/bin/env runghc++import Distribution.Simple+main = defaultMain
+ bindings-apr.cabal view
@@ -0,0 +1,93 @@+Name: bindings-apr+Synopsis: Low level bindings to Apache Portable Runtime (APR)+Description:+        Bindings to APR: <http://apr.apache.org/>+Version: 0.1+License: PublicDomain+License-File: COPYING+Author: PHO <pho at cielonegro dot org>+Maintainer: PHO <pho at cielonegro dot org>+Stability: experimental+Homepage: http://cielonegro.org/Bindings-APR.html+Category: FFI+Tested-With: GHC == 6.12.3+Cabal-Version: >= 1.6+Build-Type: Simple+Extra-Source-Files:+    COPYING++Source-Repository head+    Type: git+    Location: git://git.cielonegro.org/bindings-apr.git++Library+    Build-Depends:+        base         == 4.2.*,+        bindings-DSL == 1.0.*++    PkgConfig-Depends:+        apr-1 >= 1.3++    Exposed-Modules:+        Bindings.APR+        Bindings.APR.Allocator.Types+        Bindings.APR.Atomic+        Bindings.APR.DSO+        Bindings.APR.Env+        Bindings.APR.ErrNo+        Bindings.APR.File.IO+        Bindings.APR.File.Info+        Bindings.APR.File.Types+        Bindings.APR.FNMatch+        Bindings.APR.General+        Bindings.APR.GetOpt+        Bindings.APR.Global.Mutex+        Bindings.APR.Hash+        Bindings.APR.Lib+        Bindings.APR.MMap+        Bindings.APR.Network.IO+        Bindings.APR.Poll+        Bindings.APR.Pools+        Bindings.APR.Portable+        Bindings.APR.Proc.Mutex+        Bindings.APR.Random+        Bindings.APR.Shm+        Bindings.APR.Signal+        Bindings.APR.Strings+        Bindings.APR.Support+        Bindings.APR.Tables+        Bindings.APR.Thread.Cond+        Bindings.APR.Thread.Mutex+        Bindings.APR.Thread.Proc+        Bindings.APR.Thread.RWLock+        Bindings.APR.Time+        Bindings.APR.User+        Bindings.APR.Version+        Bindings.APR.Want++    C-Sources:+        cbits/helper_apr.c+        cbits/helper_apr_errno.c+        cbits/helper_apr_general.c+        cbits/helper_apr_global_mutex.c+        cbits/helper_apr_pools.c+        cbits/helper_apr_lib.c+        cbits/helper_apr_mmap.c+        cbits/helper_apr_network_io.c+        cbits/helper_apr_portable.c+        cbits/helper_apr_signal.c+        cbits/helper_apr_time.c+        cbits/helper_apr_thread_proc.c+        cbits/helper_apr_user.c+        cbits/helper_apr_version.c++    Include-Dirs:+        include++    Install-Includes:+        bindings.apr.inherit.h+        bindings.apr.pools.h+        bindings.apr.ring.h++    Extensions:+        ForeignFunctionInterface
+ cbits/helper_apr.c view
@@ -0,0 +1,13 @@+#include <bindings.cmacros.h>+#include <apr.h>++BC_GLOBALARRAY(APR_SSIZE_T_FMT     , char)+BC_GLOBALARRAY(APR_SIZE_T_FMT      , char)+BC_GLOBALARRAY(APR_OFF_T_FMT       , char)+BC_GLOBALARRAY(APR_PID_T_FMT       , char)+BC_GLOBALARRAY(APR_INT64_T_FMT     , char)+BC_GLOBALARRAY(APR_UINT64_T_FMT    , char)+BC_GLOBALARRAY(APR_UINT64_T_HEX_FMT, char)++BC_GLOBALARRAY(APR_EOL_STR         , char)+BC_GLOBALARRAY(APR_DSOPATH         , char)
+ cbits/helper_apr_errno.c view
@@ -0,0 +1,76 @@+#include <bindings.cmacros.h>+#include <apr_errno.h>++BC_INLINE1(APR_STATUS_IS_ENOSTAT    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOPOOL    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBADDATE   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINVALSOCK , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOPROC    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTIME    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENODIR     , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOPOLL    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOSOCKET  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTHREAD  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTHDKEY  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EGENERAL   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOSHMAVAIL, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBADIP     , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBADMASK   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EDSOOPEN   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EABSOLUTE  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ERELATIVE  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINCOMPLETE, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EABOVEROOT , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBADPATH   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EPATHWILD  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ESYMNOTFOUND     , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EPROC_UNKNOWN    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTENOUGHENTROPY, apr_status_t, int)++BC_INLINE1(APR_STATUS_IS_INCHILD   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_INPARENT  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_DETACH    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_NOTDETACH , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_CHILD_DONE, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_CHILD_NOTDONE, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_TIMEUP    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_INCOMPLETE, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_BADCH     , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_BADARG    , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EOF       , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_NOTFOUND  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ANONYMOUS , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_FILEBASED , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_KEYBASED  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINIT     , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTIMPL  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EMISMATCH , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBUSY     , apr_status_t, int)++BC_INLINE1(APR_STATUS_IS_EACCES , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EEXIST , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENAMETOOLONG, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOENT , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTDIR, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOSPC , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOMEM , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EMFILE , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENFILE , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EBADF  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINVAL , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ESPIPE , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EAGAIN , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINTR  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTSOCK, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ECONNREFUSED, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EINPROGRESS , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ECONNABORTED, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ECONNRESET  , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ETIMEDOUT   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EHOSTUNREACH, apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENETUNREACH , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EFTYPE      , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EPIPE       , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EXDEV       , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_ENOTEMPTY   , apr_status_t, int)+BC_INLINE1(APR_STATUS_IS_EAFNOSUPPORT, apr_status_t, int)
+ cbits/helper_apr_general.c view
@@ -0,0 +1,11 @@+#include <bindings.cmacros.h>+#include <apr_general.h>++BC_INLINE2(strcasecmp , const char*, const char*, int)+BC_INLINE3(strncasecmp, const char*, const char*, size_t, int)++BC_INLINE2(APR_ALIGN, apr_uint64_t, apr_uint64_t, apr_uint64_t)+BC_INLINE1(APR_ALIGN_DEFAULT, apr_uint64_t, apr_uint64_t)++BC_INLINE3(memmove, void*, const void*, size_t, void*)+BC_INLINE3(memchr , const void*, int, size_t, void*)
+ cbits/helper_apr_global_mutex.c view
@@ -0,0 +1,11 @@+#include <bindings.cmacros.h>+#include <apr_global_mutex.h>++BC_INLINE4(apr_global_mutex_create    , apr_global_mutex_t**, const char*, apr_lockmech_e, apr_pool_t*, apr_status_t)+BC_INLINE3(apr_global_mutex_child_init, apr_global_mutex_t**, const char*, apr_pool_t*, apr_status_t)+BC_INLINE1(apr_global_mutex_lock      , apr_global_mutex_t*, apr_status_t)+BC_INLINE1(apr_global_mutex_trylock   , apr_global_mutex_t*, apr_status_t)+BC_INLINE1(apr_global_mutex_unlock    , apr_global_mutex_t*, apr_status_t)+BC_INLINE1(apr_global_mutex_destroy   , apr_global_mutex_t*, apr_status_t)++BC_INLINE1(apr_global_mutex_pool_get  , apr_global_mutex_t*, apr_pool_t*)
+ cbits/helper_apr_lib.c view
@@ -0,0 +1,19 @@+#include <bindings.cmacros.h>+#include <apr_lib.h>+#include <signal.h>++BC_INLINE2(apr_killpg, pid_t, int, int)++BC_INLINE1(apr_isalnum , int, int)+BC_INLINE1(apr_isalpha , int, int)+BC_INLINE1(apr_isdigit , int, int)+BC_INLINE1(apr_isgraph , int, int)+BC_INLINE1(apr_islower , int, int)+BC_INLINE1(apr_isascii , int, int)+BC_INLINE1(apr_isprint , int, int)+BC_INLINE1(apr_ispunct , int, int)+BC_INLINE1(apr_isspace , int, int)+BC_INLINE1(apr_isupper , int, int)+BC_INLINE1(apr_isxdigit, int, int)+BC_INLINE1(apr_tolower , int, int)+BC_INLINE1(apr_toupper , int, int)
+ cbits/helper_apr_mmap.c view
@@ -0,0 +1,4 @@+#include <bindings.cmacros.h>+#include <apr_mmap.h>++BC_INLINE1(APR_MMAP_CANDIDATE, apr_off_t, int)
+ cbits/helper_apr_network_io.c view
@@ -0,0 +1,4 @@+#include <bindings.cmacros.h>+#include <apr_network_io.h>++BC_GLOBALARRAY(APR_ANYADDR, char)
+ cbits/helper_apr_pools.c view
@@ -0,0 +1,23 @@+#include <bindings.cmacros.h>+#include <apr_pools.h>++#if APR_POOL_DEBUG+BC_INLINE4(apr_pool_create_ex, apr_pool_t**, apr_pool_t*, apr_abortfunc_t, apr_allocator_t*, apr_status_t)+BC_INLINE3(apr_pool_create_core_ex, apr_pool_t**, apr_abortfunc_t, apr_allocator_t*, apr_status_t)+BC_INLINE3(apr_pool_create_unmanaged_ex, apr_pool_t**, apr_abortfunc_t, apr_allocator_t*, apr_status_t)+#endif++BC_INLINE2(apr_pool_create, apr_pool_t**, apr_pool_t*, apr_status_t)+BC_INLINE1(apr_pool_create_core, apr_pool_t**, apr_status_t)+BC_INLINE1(apr_pool_create_unmanaged, apr_pool_t**, apr_status_t)++#if APR_POOL_DEBUG+BC_INLINE1VOID(apr_pool_clear  , apr_pool_t*)+BC_INLINE1VOID(apr_pool_destroy, apr_pool_t*)+BC_INLINE3(apr_palloc, apr_pool_t*, apr_size_t, const char*, void*)+#endif++BC_INLINE2(apr_pcalloc, apr_pool_t*, apr_size_t, void*)++BC_INLINE2VOID(apr_pool_join, apr_pool_t*, apr_pool_t*)+BC_INLINE2VOID(apr_pool_lock, apr_pool_t*, int)
+ cbits/helper_apr_portable.c view
@@ -0,0 +1,4 @@+#include <bindings.cmacros.h>+#include <apr_portable.h>++BC_INLINE2(apr_os_global_mutex_get, apr_os_global_mutex_t*, apr_global_mutex_t*, apr_status_t)
+ cbits/helper_apr_signal.c view
@@ -0,0 +1,6 @@+#include <bindings.cmacros.h>+#include <apr_signal.h>++void (*inline_apr_signal(int signo, void (*func)(int)))(int) {+    return apr_signal(signo, func);+}
+ cbits/helper_apr_thread_proc.c view
@@ -0,0 +1,6 @@+#include <bindings.cmacros.h>+#include <apr_thread_proc.h>++BC_INLINE1(APR_PROC_CHECK_EXIT     , apr_exit_why_e, int)+BC_INLINE1(APR_PROC_CHECK_SIGNALED , apr_exit_why_e, int)+BC_INLINE1(APR_PROC_CHECK_CORE_DUMP, apr_exit_why_e, int)
+ cbits/helper_apr_time.c view
@@ -0,0 +1,11 @@+#include <bindings.cmacros.h>+#include <apr_time.h>++BC_GLOBALARRAY(APR_TIME_T_FMT, char)++BC_INLINE1(apr_time_sec , apr_time_t, apr_time_t)+BC_INLINE1(apr_time_usec, apr_time_t, apr_time_t)+BC_INLINE1(apr_time_msec, apr_time_t, apr_time_t)+BC_INLINE1(apr_time_as_msec , apr_time_t, apr_time_t)+BC_INLINE1(apr_time_from_sec, apr_time_t, apr_time_t)+BC_INLINE2(apr_time_make, apr_time_t, apr_time_t, apr_time_t)
+ cbits/helper_apr_user.c view
@@ -0,0 +1,5 @@+#include <bindings.cmacros.h>+#include <apr_user.h>++BC_INLINE2(apr_uid_compare, apr_uid_t, apr_uid_t, apr_status_t)+BC_INLINE2(apr_gid_compare, apr_gid_t, apr_gid_t, apr_status_t)
+ cbits/helper_apr_version.c view
@@ -0,0 +1,6 @@+#include <bindings.cmacros.h>+#include <apr_version.h>++BC_INLINE3(APR_VERSION_AT_LEAST, int, int, int, int)++BC_GLOBALARRAY(APR_VERSION_STRING, char)
+ include/bindings.apr.inherit.h view
@@ -0,0 +1,15 @@+#ifndef __BINDINGS_APR_INHERIT_H__+#define __BINDINGS_APR_INHERIT_H__+#include <bindings.dsl.h>++#define hsc_apr_inherit_set(TYPE)                       \+    hsc_ccall(                                          \+        apr_ ## TYPE ## _inherit_set,                   \+        Ptr <apr_ ## TYPE ## _t> -> IO <apr_status_t>)++#define hsc_apr_inherit_unset(TYPE)                     \+    hsc_ccall(                                          \+        apr_ ## TYPE ## _inherit_unset,                 \+        Ptr <apr_ ## TYPE ## _t> -> IO <apr_status_t>)++#endif
+ include/bindings.apr.pools.h view
@@ -0,0 +1,10 @@+#ifndef __BINDINGS_APR_POOLS_H__+#define __BINDINGS_APR_POOLS_H__+#include <bindings.dsl.h>++#define hsc_apr_pool_accessor(TYPE)                        \+    hsc_ccall(                                             \+        apr_ ## TYPE ## _pool_get,                         \+        Ptr <apr_ ## TYPE ## _t> -> IO (Ptr <apr_pool_t>))++#endif
+ include/bindings.apr.ring.h view
@@ -0,0 +1,15 @@+#ifndef __BINDINGS_APR_RING_H__+#define __BINDINGS_APR_RING_H__+#include <bindings.dsl.h>++#define hsc_apr_ring_entry_field(NAME, TYPE)    \+    hsc_field(NAME.next, Ptr TYPE)              \+    hsc_field(NAME.prev, Ptr TYPE)++#define hsc_apr_ring_head_t(NAME, TYPE)         \+    hsc_starttype(struct NAME)                  \+    hsc_field(next, Ptr TYPE)                   \+    hsc_field(prev, Ptr TYPE)                   \+    hsc_stoptype(dummy)++#endif