bindings-posix 1.2.3 → 1.2.4
raw patch · 6 files changed
+77/−16 lines, 6 filesdep ~bindings-DSLPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: bindings-DSL
API changes (from Hackage documentation)
- Bindings.Posix.Signal: c'sigaction'sa_handler :: C'sigaction -> FunPtr (CInt -> IO ())
- Bindings.Posix.Signal: c'sigaction'sa_sigaction :: C'sigaction -> FunPtr (CInt -> Ptr C'siginfo_t -> Ptr () -> IO ())
- Bindings.Posix.Signal: c'sigevent'sigev_notify_attributes :: C'sigevent -> Ptr C'pthread_attr_t
- Bindings.Posix.Signal: c'sigevent'sigev_notify_function :: C'sigevent -> FunPtr (C'sigval -> IO ())
- Bindings.Posix.Signal: c'siginfo_t'si_addr :: C'siginfo_t -> Ptr ()
- Bindings.Posix.Signal: c'siginfo_t'si_pid :: C'siginfo_t -> C'pid_t
- Bindings.Posix.Signal: c'siginfo_t'si_status :: C'siginfo_t -> CInt
- Bindings.Posix.Signal: c'siginfo_t'si_uid :: C'siginfo_t -> C'uid_t
- Bindings.Posix.Signal: c'siginfo_t'si_value :: C'siginfo_t -> C'sigval
+ Bindings.Posix.Fcntl: p'flock'l_len :: Ptr (C'flock) -> Ptr (C'off_t)
+ Bindings.Posix.Fcntl: p'flock'l_pid :: Ptr (C'flock) -> Ptr (C'pid_t)
+ Bindings.Posix.Fcntl: p'flock'l_start :: Ptr (C'flock) -> Ptr (C'off_t)
+ Bindings.Posix.Fcntl: p'flock'l_type :: Ptr (C'flock) -> Ptr (CShort)
+ Bindings.Posix.Fcntl: p'flock'l_whence :: Ptr (C'flock) -> Ptr (CShort)
+ Bindings.Posix.Regex: C'regex_t :: CSize -> C'regex_t
+ Bindings.Posix.Regex: C'regmatch_t :: C'regoff_t -> C'regoff_t -> C'regmatch_t
+ Bindings.Posix.Regex: c'REG_BADBR :: Num a => a
+ Bindings.Posix.Regex: c'REG_BADPAT :: Num a => a
+ Bindings.Posix.Regex: c'REG_BADRPT :: Num a => a
+ Bindings.Posix.Regex: c'REG_EBRACE :: Num a => a
+ Bindings.Posix.Regex: c'REG_EBRACK :: Num a => a
+ Bindings.Posix.Regex: c'REG_ECOLLATE :: Num a => a
+ Bindings.Posix.Regex: c'REG_ECTYPE :: Num a => a
+ Bindings.Posix.Regex: c'REG_EESCAPE :: Num a => a
+ Bindings.Posix.Regex: c'REG_EPAREN :: Num a => a
+ Bindings.Posix.Regex: c'REG_ERANGE :: Num a => a
+ Bindings.Posix.Regex: c'REG_ESPACE :: Num a => a
+ Bindings.Posix.Regex: c'REG_ESUBREG :: Num a => a
+ Bindings.Posix.Regex: c'REG_EXTENDED :: Num a => a
+ Bindings.Posix.Regex: c'REG_ICASE :: Num a => a
+ Bindings.Posix.Regex: c'REG_NEWLINE :: Num a => a
+ Bindings.Posix.Regex: c'REG_NOMATCH :: Num a => a
+ Bindings.Posix.Regex: c'REG_NOSUB :: Num a => a
+ Bindings.Posix.Regex: c'REG_NOTBOL :: Num a => a
+ Bindings.Posix.Regex: c'REG_NOTEOL :: Num a => a
+ Bindings.Posix.Regex: c'regcomp :: Ptr C'regex_t -> CString -> CInt -> IO CInt
+ Bindings.Posix.Regex: c'regerror :: CInt -> Ptr C'regex_t -> CString -> CSize -> IO CSize
+ Bindings.Posix.Regex: c'regex_t're_nsub :: C'regex_t -> CSize
+ Bindings.Posix.Regex: c'regexec :: Ptr C'regex_t -> CString -> CSize -> Ptr C'regmatch_t -> CInt -> IO CInt
+ Bindings.Posix.Regex: c'regfree :: Ptr C'regex_t -> IO ()
+ Bindings.Posix.Regex: c'regmatch_t'rm_eo :: C'regmatch_t -> C'regoff_t
+ Bindings.Posix.Regex: c'regmatch_t'rm_so :: C'regmatch_t -> C'regoff_t
+ Bindings.Posix.Regex: data C'regex_t
+ Bindings.Posix.Regex: data C'regmatch_t
+ Bindings.Posix.Regex: instance Eq C'regex_t
+ Bindings.Posix.Regex: instance Eq C'regmatch_t
+ Bindings.Posix.Regex: instance Show C'regex_t
+ Bindings.Posix.Regex: instance Show C'regmatch_t
+ Bindings.Posix.Regex: instance Storable C'regex_t
+ Bindings.Posix.Regex: instance Storable C'regmatch_t
+ Bindings.Posix.Regex: p'regcomp :: FunPtr (Ptr C'regex_t -> CString -> CInt -> IO CInt)
+ Bindings.Posix.Regex: p'regerror :: FunPtr (CInt -> Ptr C'regex_t -> CString -> CSize -> IO CSize)
+ Bindings.Posix.Regex: p'regex_t're_nsub :: Ptr (C'regex_t) -> Ptr (CSize)
+ Bindings.Posix.Regex: p'regexec :: FunPtr (Ptr C'regex_t -> CString -> CSize -> Ptr C'regmatch_t -> CInt -> IO CInt)
+ Bindings.Posix.Regex: p'regfree :: FunPtr (Ptr C'regex_t -> IO ())
+ Bindings.Posix.Regex: p'regmatch_t'rm_eo :: Ptr (C'regmatch_t) -> Ptr (C'regoff_t)
+ Bindings.Posix.Regex: p'regmatch_t'rm_so :: Ptr (C'regmatch_t) -> Ptr (C'regoff_t)
+ Bindings.Posix.Regex: type C'regoff_t = CInt
+ Bindings.Posix.Signal: c'sigaction'__sigaction_handler'sa_handler :: C'sigaction -> FunPtr (CInt -> IO ())
+ Bindings.Posix.Signal: c'sigaction'__sigaction_handler'sa_sigaction :: C'sigaction -> FunPtr (CInt -> Ptr C'siginfo_t -> Ptr () -> IO ())
+ Bindings.Posix.Signal: c'sigevent'_sigev_un'_sigev_thread'_attribute :: C'sigevent -> Ptr C'pthread_attr_t
+ Bindings.Posix.Signal: c'sigevent'_sigev_un'_sigev_thread'_function :: C'sigevent -> FunPtr (C'sigval -> IO ())
+ Bindings.Posix.Signal: c'siginfo_t'_sifields'_kill'si_pid :: C'siginfo_t -> C'pid_t
+ Bindings.Posix.Signal: c'siginfo_t'_sifields'_kill'si_uid :: C'siginfo_t -> C'uid_t
+ Bindings.Posix.Signal: c'siginfo_t'_sifields'_rt'si_sigval :: C'siginfo_t -> C'sigval
+ Bindings.Posix.Signal: c'siginfo_t'_sifields'_sigchld'si_status :: C'siginfo_t -> CInt
+ Bindings.Posix.Signal: c'siginfo_t'_sifields'_sigfault'si_addr :: C'siginfo_t -> Ptr ()
+ Bindings.Posix.Signal: p'sigaction'__sigaction_handler'sa_handler :: Ptr (C'sigaction) -> Ptr (FunPtr (CInt -> IO ()))
+ Bindings.Posix.Signal: p'sigaction'__sigaction_handler'sa_sigaction :: Ptr (C'sigaction) -> Ptr (FunPtr (CInt -> Ptr C'siginfo_t -> Ptr () -> IO ()))
+ Bindings.Posix.Signal: p'sigaction'sa_flags :: Ptr (C'sigaction) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'sigaction'sa_mask :: Ptr (C'sigaction) -> Ptr (C'sigset_t)
+ Bindings.Posix.Signal: p'sigevent'_sigev_un'_sigev_thread'_attribute :: Ptr (C'sigevent) -> Ptr (Ptr C'pthread_attr_t)
+ Bindings.Posix.Signal: p'sigevent'_sigev_un'_sigev_thread'_function :: Ptr (C'sigevent) -> Ptr (FunPtr (C'sigval -> IO ()))
+ Bindings.Posix.Signal: p'sigevent'sigev_notify :: Ptr (C'sigevent) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'sigevent'sigev_signo :: Ptr (C'sigevent) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'sigevent'sigev_value :: Ptr (C'sigevent) -> Ptr (C'sigval)
+ Bindings.Posix.Signal: p'siginfo_t'_sifields'_kill'si_pid :: Ptr (C'siginfo_t) -> Ptr (C'pid_t)
+ Bindings.Posix.Signal: p'siginfo_t'_sifields'_kill'si_uid :: Ptr (C'siginfo_t) -> Ptr (C'uid_t)
+ Bindings.Posix.Signal: p'siginfo_t'_sifields'_rt'si_sigval :: Ptr (C'siginfo_t) -> Ptr (C'sigval)
+ Bindings.Posix.Signal: p'siginfo_t'_sifields'_sigchld'si_status :: Ptr (C'siginfo_t) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'siginfo_t'_sifields'_sigfault'si_addr :: Ptr (C'siginfo_t) -> Ptr (Ptr ())
+ Bindings.Posix.Signal: p'siginfo_t'si_code :: Ptr (C'siginfo_t) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'siginfo_t'si_signo :: Ptr (C'siginfo_t) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'sigval'sival_int :: Ptr (C'sigval) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'sigval'sival_ptr :: Ptr (C'sigval) -> Ptr (Ptr ())
+ Bindings.Posix.Signal: p'stack_t'ss_flags :: Ptr (C'stack_t) -> Ptr (CInt)
+ Bindings.Posix.Signal: p'stack_t'ss_size :: Ptr (C'stack_t) -> Ptr (CSize)
+ Bindings.Posix.Signal: p'stack_t'ss_sp :: Ptr (C'stack_t) -> Ptr (Ptr ())
+ Bindings.Posix.Signal: p'ucontext_t'uc_link :: Ptr (C'ucontext_t) -> Ptr (Ptr C'ucontext_t)
+ Bindings.Posix.Signal: p'ucontext_t'uc_mcontext :: Ptr (C'ucontext_t) -> Ptr (C'mcontext_t)
+ Bindings.Posix.Signal: p'ucontext_t'uc_sigmask :: Ptr (C'ucontext_t) -> Ptr (C'sigset_t)
+ Bindings.Posix.Signal: p'ucontext_t'uc_stack :: Ptr (C'ucontext_t) -> Ptr (C'stack_t)
+ Bindings.Posix.Sys.Select: p'timeval'tv_sec :: Ptr (C'timeval) -> Ptr (CTime)
+ Bindings.Posix.Sys.Select: p'timeval'tv_usec :: Ptr (C'timeval) -> Ptr (C'suseconds_t)
+ Bindings.Posix.Sys.Utsname: p'utsname'machine :: Ptr (C'utsname) -> Ptr (CChar)
+ Bindings.Posix.Sys.Utsname: p'utsname'nodename :: Ptr (C'utsname) -> Ptr (CChar)
+ Bindings.Posix.Sys.Utsname: p'utsname'release :: Ptr (C'utsname) -> Ptr (CChar)
+ Bindings.Posix.Sys.Utsname: p'utsname'sysname :: Ptr (C'utsname) -> Ptr (CChar)
+ Bindings.Posix.Sys.Utsname: p'utsname'version :: Ptr (C'utsname) -> Ptr (CChar)
+ Bindings.Posix.Time: p'itimerspec'it_interval :: Ptr (C'itimerspec) -> Ptr (C'timespec)
+ Bindings.Posix.Time: p'itimerspec'it_value :: Ptr (C'itimerspec) -> Ptr (C'timespec)
+ Bindings.Posix.Time: p'timespec'tv_nsec :: Ptr (C'timespec) -> Ptr (CLong)
+ Bindings.Posix.Time: p'timespec'tv_sec :: Ptr (C'timespec) -> Ptr (CTime)
+ Bindings.Posix.Time: p'tm'tm_hour :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_isdst :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_mday :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_min :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_mon :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_sec :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_wday :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_yday :: Ptr (C'tm) -> Ptr (CInt)
+ Bindings.Posix.Time: p'tm'tm_year :: Ptr (C'tm) -> Ptr (CInt)
- Bindings.Posix.Sys.Types: type C'blkcnt_t = Int64
+ Bindings.Posix.Sys.Types: type C'blkcnt_t = CInt
- Bindings.Posix.Sys.Types: type C'ino_t = Word64
+ Bindings.Posix.Sys.Types: type C'ino_t = CUInt
- Bindings.Posix.Sys.Types: type C'off_t = Int64
+ Bindings.Posix.Sys.Types: type C'off_t = CInt
Files
- bindings-posix.cabal +17/−5
- src/Bindings/Posix.hs +2/−0
- src/Bindings/Posix/Regex.hsc +46/−0
- src/Bindings/Posix/Sys/Select.c +7/−0
- src/Bindings/Posix/Time.c +5/−0
- src/inlines.c +0/−11
bindings-posix.cabal view
@@ -1,8 +1,13 @@-cabal-version: >= 1.2.3+cabal-version: >= 1.8 name: bindings-posix synopsis: Low level bindings to posix.-version: 1.2.3+description:+ Low level bindings to Posix standard library, part+ of the @bindings-*@. See:+ .+ <http://bitbucket.org/mauricio/bindings-DSL+version: 1.2.4 license: BSD3 license-file: LICENSE maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>@@ -16,12 +21,13 @@ ForeignFunctionInterface build-depends: base >= 3 && < 5,- bindings-DSL >= 1.0.12 && < 1.1+ bindings-DSL >= 1.0.16 && < 1.1 exposed-modules: Bindings.Posix Bindings.Posix.Errno Bindings.Posix.Fcntl Bindings.Posix.Locale+ Bindings.Posix.Regex Bindings.Posix.Signal Bindings.Posix.Sys Bindings.Posix.Sys.Mman@@ -30,10 +36,16 @@ Bindings.Posix.Sys.Utsname Bindings.Posix.Time Bindings.Posix.Unistd+ c-sources:+ src/Bindings/Posix/Sys/Select.c+ src/Bindings/Posix/Time.c cc-options: "-D_ISOC99_SOURCE" "-D_POSIX_C_SOURCE=200112L" "-D_XOPEN_SOURCE=600"- c-sources: src/inlines.c extra-libraries: pthread-+source-repository head+ type: git+ location: https://bitbucket.org/mauricio/bindings-dsl+ branch: master+ subdir: bindings-posix
src/Bindings/Posix.hs view
@@ -2,6 +2,7 @@ module Bindings.Posix.Errno, module Bindings.Posix.Fcntl, module Bindings.Posix.Locale,+ module Bindings.Posix.Regex, module Bindings.Posix.Signal, module Bindings.Posix.Sys, module Bindings.Posix.Time,@@ -10,6 +11,7 @@ import Bindings.Posix.Errno import Bindings.Posix.Fcntl import Bindings.Posix.Locale+import Bindings.Posix.Regex import Bindings.Posix.Signal import Bindings.Posix.Sys import Bindings.Posix.Time
+ src/Bindings/Posix/Regex.hsc view
@@ -0,0 +1,46 @@+#include <bindings.dsl.h>+#include <regex.h>++-- | <http://www.opengroup.org/onlinepubs/9699919799/basedefs/regex.h.html>++module Bindings.Posix.Regex where+#strict_import+import Bindings.Posix.Sys.Types++#starttype regex_t+#field re_nsub , CSize+#stoptype++#integral_t regoff_t++#starttype regmatch_t+#field rm_so , <regoff_t>+#field rm_eo , <regoff_t>+#stoptype++#num REG_EXTENDED+#num REG_ICASE+#num REG_NOSUB+#num REG_NEWLINE++#num REG_NOTBOL+#num REG_NOTEOL++#num REG_NOMATCH+#num REG_BADPAT+#num REG_ECOLLATE+#num REG_ECTYPE+#num REG_EESCAPE+#num REG_ESUBREG+#num REG_EBRACK+#num REG_EPAREN+#num REG_EBRACE+#num REG_BADBR+#num REG_ERANGE+#num REG_ESPACE+#num REG_BADRPT++#ccall regcomp , Ptr <regex_t> -> CString -> CInt -> IO CInt+#ccall regerror , CInt -> Ptr <regex_t> -> CString -> CSize -> IO CSize+#ccall regexec , Ptr <regex_t> -> CString -> CSize -> Ptr <regmatch_t> -> CInt -> IO CInt+#ccall regfree , Ptr <regex_t> -> IO ()
+ src/Bindings/Posix/Sys/Select.c view
@@ -0,0 +1,7 @@+#include<bindings.cmacros.h>+#include<sys/select.h>++BC_INLINE2VOID(FD_CLR,int,fd_set*)+BC_INLINE2(FD_ISSET,int,fd_set*,int)+BC_INLINE2VOID(FD_SET,int,fd_set*)+BC_INLINE1VOID(FD_ZERO,fd_set*)
+ src/Bindings/Posix/Time.c view
@@ -0,0 +1,5 @@+#include<bindings.cmacros.h>+#include<time.h>++BC_INLINE_(getdate_err,int)+BC_GLOBALARRAY(tzname,char*)
− src/inlines.c
@@ -1,11 +0,0 @@-#include<bindings.cmacros.h>-#include<sys/select.h>-#include<time.h>--BC_INLINE2VOID(FD_CLR,int,fd_set*)-BC_INLINE2(FD_ISSET,int,fd_set*,int)-BC_INLINE2VOID(FD_SET,int,fd_set*)-BC_INLINE1VOID(FD_ZERO,fd_set*)-BC_INLINE_(getdate_err,int)-BC_GLOBALARRAY(tzname,char*)-