]> gitweb @ CieloNegro.org - bindings-apr.git/commitdiff
more bindings
authorPHO <pho@cielonegro.org>
Sun, 8 Aug 2010 14:23:02 +0000 (23:23 +0900)
committerPHO <pho@cielonegro.org>
Sun, 8 Aug 2010 14:23:02 +0000 (23:23 +0900)
Bindings/APR/File/IO.hsc [new file with mode: 0644]
Bindings/APR/File/Info.hsc [new file with mode: 0644]
Bindings/APR/File/Types.hsc [new file with mode: 0644]
Bindings/APR/Time.hsc [new file with mode: 0644]
Bindings/APR/Want.hsc [new file with mode: 0644]
bindings-apr.cabal
cbits/helper_apr_time.c [new file with mode: 0644]

diff --git a/Bindings/APR/File/IO.hsc b/Bindings/APR/File/IO.hsc
new file mode 100644 (file)
index 0000000..d476c7d
--- /dev/null
@@ -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>
diff --git a/Bindings/APR/File/Info.hsc b/Bindings/APR/File/Info.hsc
new file mode 100644 (file)
index 0000000..71b9f1b
--- /dev/null
@@ -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>
diff --git a/Bindings/APR/File/Types.hsc b/Bindings/APR/File/Types.hsc
new file mode 100644 (file)
index 0000000..23ab22e
--- /dev/null
@@ -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
diff --git a/Bindings/APR/Time.hsc b/Bindings/APR/Time.hsc
new file mode 100644 (file)
index 0000000..9c70322
--- /dev/null
@@ -0,0 +1,63 @@
+#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
+
+-- Isn't there a better way than this?
+#pointer apr_month_snames
+#pointer apr_day_snames
+
+#integral_t apr_time_t
+#pointer APR_TIME_T_FMT
+
+#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 ()
diff --git a/Bindings/APR/Want.hsc b/Bindings/APR/Want.hsc
new file mode 100644 (file)
index 0000000..9947e0a
--- /dev/null
@@ -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
index 4bb86d54664a4e8e94ce36c747c3a35341799ddf..75436cd25667b7b9b2d4774c85765359ab6aee2c 100644 (file)
@@ -36,17 +36,23 @@ Library
         Bindings.APR.DSO
         Bindings.APR.Env
         Bindings.APR.ErrNo
+        Bindings.APR.File.IO
+        Bindings.APR.File.Info
+        Bindings.APR.File.Types
         Bindings.APR.Pools
         Bindings.APR.Proc.Mutex
         Bindings.APR.Tables
         Bindings.APR.Thread.Mutex
         Bindings.APR.Thread.RWLock
+        Bindings.APR.Time
         Bindings.APR.User
+        Bindings.APR.Want
 
     C-Sources:
 --        cbits/helper_apr_anylock.c
         cbits/helper_apr_errno.c
         cbits/helper_apr_pools.c
+        cbits/helper_apr_time.c
         cbits/helper_apr_user.c
 
     Extensions:
diff --git a/cbits/helper_apr_time.c b/cbits/helper_apr_time.c
new file mode 100644 (file)
index 0000000..9c22ba6
--- /dev/null
@@ -0,0 +1,9 @@
+#include <bindings.cmacros.h>
+#include <apr_time.h>
+
+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)