{-# LINE 1 "Foundation/System/Bindings/Posix.hsc" #-} ----------------------------------------------------------------------------- {-# LINE 2 "Foundation/System/Bindings/Posix.hsc" #-} -- | -- Module : Foundation.System.Bindings.Posix -- Copyright : (c) Vincent Hanquez 2014-2017 -- License : BSD-style -- -- Maintainer : Vincent Hanquez -- Stability : provisional -- Portability : non-portable (requires POSIX) -- -- Functions defined by the POSIX standards -- ----------------------------------------------------------------------------- module Foundation.System.Bindings.Posix where import Foundation.Internal.Base import Foreign.C.Types import Data.Bits import Foundation.System.Bindings.PosixDef {-# LINE 24 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 25 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 26 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 27 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 28 "Foundation/System/Bindings/Posix.hsc" #-} data CDir data CDirent sysPosix_E2BIG , sysPosix_EACCES , sysPosix_EADDRINUSE , sysPosix_EADDRNOTAVAIL , sysPosix_EAFNOSUPPORT , sysPosix_EAGAIN , sysPosix_EALREADY , sysPosix_EBADF , sysPosix_EBUSY , sysPosix_ECANCELED , sysPosix_ECHILD , sysPosix_ECONNABORTED , sysPosix_ECONNREFUSED , sysPosix_ECONNRESET , sysPosix_EDEADLK , sysPosix_EDESTADDRREQ , sysPosix_EDOM , sysPosix_EDQUOT , sysPosix_EEXIST , sysPosix_EFAULT , sysPosix_EFBIG , sysPosix_EHOSTUNREACH , sysPosix_EIDRM , sysPosix_EILSEQ , sysPosix_EINPROGRESS , sysPosix_EINTR , sysPosix_EINVAL , sysPosix_EIO , sysPosix_EISCONN , sysPosix_EISDIR , sysPosix_ELOOP , sysPosix_EMFILE , sysPosix_EMLINK , sysPosix_EMSGSIZE , sysPosix_ENAMETOOLONG , sysPosix_ENETDOWN , sysPosix_ENETRESET , sysPosix_ENETUNREACH , sysPosix_ENFILE , sysPosix_ENOBUFS , sysPosix_ENODEV , sysPosix_ENOENT , sysPosix_ENOEXEC , sysPosix_ENOLCK , sysPosix_ENOMEM , sysPosix_ENOMSG , sysPosix_ENOPROTOOPT , sysPosix_ENOSPC , sysPosix_ENOSYS , sysPosix_ENOTCONN , sysPosix_ENOTDIR , sysPosix_ENOTEMPTY , sysPosix_ENOTSOCK , sysPosix_ENOTSUP , sysPosix_ENOTTY , sysPosix_ENXIO , sysPosix_EOPNOTSUPP , sysPosix_EOVERFLOW , sysPosix_EPERM , sysPosix_EPIPE , sysPosix_EPROTONOSUPPORT , sysPosix_EPROTOTYPE , sysPosix_ERANGE , sysPosix_EROFS , sysPosix_ESPIPE , sysPosix_ESRCH , sysPosix_ESTALE , sysPosix_ETIMEDOUT , sysPosix_ETXTBSY , sysPosix_EWOULDBLOCK , sysPosix_EXDEV :: CErrno sysPosix_E2BIG = (7) {-# LINE 104 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EACCES = (13) {-# LINE 105 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EADDRINUSE = (98) {-# LINE 106 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EADDRNOTAVAIL = (99) {-# LINE 107 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EAFNOSUPPORT = (97) {-# LINE 108 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EAGAIN = (11) {-# LINE 109 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EALREADY = (114) {-# LINE 110 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EBADF = (9) {-# LINE 111 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EBUSY = (16) {-# LINE 112 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ECANCELED = (125) {-# LINE 113 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ECHILD = (10) {-# LINE 114 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ECONNABORTED = (103) {-# LINE 115 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ECONNREFUSED = (111) {-# LINE 116 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ECONNRESET = (104) {-# LINE 117 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EDEADLK = (35) {-# LINE 118 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EDESTADDRREQ = (89) {-# LINE 119 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EDOM = (33) {-# LINE 120 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EDQUOT = (122) {-# LINE 121 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EEXIST = (17) {-# LINE 122 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EFAULT = (14) {-# LINE 123 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EFBIG = (27) {-# LINE 124 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EHOSTUNREACH = (113) {-# LINE 125 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EIDRM = (43) {-# LINE 126 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EILSEQ = (84) {-# LINE 127 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EINPROGRESS = (115) {-# LINE 128 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EINTR = (4) {-# LINE 129 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EINVAL = (22) {-# LINE 130 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EIO = (5) {-# LINE 131 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EISCONN = (106) {-# LINE 132 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EISDIR = (21) {-# LINE 133 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ELOOP = (40) {-# LINE 134 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EMFILE = (24) {-# LINE 135 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EMLINK = (31) {-# LINE 136 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EMSGSIZE = (90) {-# LINE 137 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENAMETOOLONG = (36) {-# LINE 138 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENETDOWN = (100) {-# LINE 139 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENETRESET = (102) {-# LINE 140 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENETUNREACH = (101) {-# LINE 141 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENFILE = (23) {-# LINE 142 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOBUFS = (105) {-# LINE 143 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENODEV = (19) {-# LINE 144 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOENT = (2) {-# LINE 145 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOEXEC = (8) {-# LINE 146 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOLCK = (37) {-# LINE 147 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOMEM = (12) {-# LINE 148 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOMSG = (42) {-# LINE 149 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOPROTOOPT = (92) {-# LINE 150 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOSPC = (28) {-# LINE 151 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOSYS = (38) {-# LINE 152 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTCONN = (107) {-# LINE 153 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTDIR = (20) {-# LINE 154 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTEMPTY = (39) {-# LINE 155 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTSOCK = (88) {-# LINE 156 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTSUP = (95) {-# LINE 157 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTTY = (25) {-# LINE 158 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENXIO = (6) {-# LINE 159 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EOPNOTSUPP = (95) {-# LINE 160 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EOVERFLOW = (75) {-# LINE 161 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EPERM = (1) {-# LINE 162 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EPIPE = (32) {-# LINE 163 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EPROTONOSUPPORT = (93) {-# LINE 164 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EPROTOTYPE = (91) {-# LINE 165 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ERANGE = (34) {-# LINE 166 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EROFS = (30) {-# LINE 167 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ESPIPE = (29) {-# LINE 168 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ESRCH = (3) {-# LINE 169 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ESTALE = (116) {-# LINE 170 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ETIMEDOUT = (110) {-# LINE 171 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ETXTBSY = (26) {-# LINE 172 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EWOULDBLOCK = (11) {-# LINE 173 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EXDEV = (18) {-# LINE 174 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 176 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENODATA :: CErrno sysPosix_ENODATA = (61) {-# LINE 178 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 179 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 181 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOSR :: CErrno sysPosix_ENOSR = (63) {-# LINE 183 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 184 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 186 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOSTR :: CErrno sysPosix_ENOSTR = (60) {-# LINE 188 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 189 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 191 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ETIME :: CErrno sysPosix_ETIME = (62) {-# LINE 193 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 194 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 196 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EBADMSG :: CErrno sysPosix_EBADMSG = (74) {-# LINE 198 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 199 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 201 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EMULTIHOP :: CErrno sysPosix_EMULTIHOP = (72) {-# LINE 203 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 204 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 206 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOLINK :: CErrno sysPosix_ENOLINK = (67) {-# LINE 208 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 209 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 211 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_ENOTRECOVERABLE :: CErrno sysPosix_ENOTRECOVERABLE = (131) {-# LINE 213 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 214 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 216 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EOWNERDEAD :: CErrno sysPosix_EOWNERDEAD = (130) {-# LINE 218 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 219 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 221 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_EPROTO :: CErrno sysPosix_EPROTO = (71) {-# LINE 223 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 224 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_RDONLY , sysPosix_O_WRONLY , sysPosix_O_RDWR , sysPosix_O_NONBLOCK , sysPosix_O_APPEND , sysPosix_O_CREAT , sysPosix_O_TRUNC , sysPosix_O_EXCL :: COpenFlags sysPosix_O_RDONLY = (0) {-# LINE 234 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_WRONLY = (1) {-# LINE 235 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_RDWR = ((0) .|. (1)) {-# LINE 236 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_NONBLOCK = (2048) {-# LINE 237 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_APPEND = (1024) {-# LINE 238 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_CREAT = (64) {-# LINE 239 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_TRUNC = (512) {-# LINE 240 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_EXCL = (128) {-# LINE 241 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 243 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_NOFOLLOW :: COpenFlags sysPosix_O_NOFOLLOW = (131072) {-# LINE 245 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 246 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 248 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_O_CLOEXEC :: COpenFlags sysPosix_O_CLOEXEC = (524288) {-# LINE 250 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 251 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_PROT_NONE , sysPosix_PROT_READ , sysPosix_PROT_WRITE , sysPosix_PROT_EXEC :: CMemProtFlags sysPosix_PROT_NONE = (0) {-# LINE 257 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_PROT_READ = (1) {-# LINE 258 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_PROT_WRITE = (2) {-# LINE 259 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_PROT_EXEC = (4) {-# LINE 260 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MAP_SHARED , sysPosix_MAP_PRIVATE , sysPosix_MAP_FIXED , sysPosix_MAP_ANONYMOUS :: CMemMappingFlags sysPosix_MAP_SHARED = (1) {-# LINE 266 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MAP_PRIVATE = (2) {-# LINE 267 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MAP_FIXED = (16) {-# LINE 268 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 271 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MAP_ANONYMOUS = (32) {-# LINE 272 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 273 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_NORMAL , sysPosix_MADV_RANDOM , sysPosix_MADV_SEQUENTIAL , sysPosix_MADV_WILLNEED , sysPosix_MADV_DONTNEED :: CMemAdvice {-# LINE 280 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_NORMAL = (0) {-# LINE 281 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_RANDOM = (1) {-# LINE 282 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_SEQUENTIAL = (2) {-# LINE 283 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_WILLNEED = (3) {-# LINE 284 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MADV_DONTNEED = (4) {-# LINE 285 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 292 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MS_ASYNC , sysPosix_MS_SYNC , sysPosix_MS_INVALIDATE :: CMemSyncFlags sysPosix_MS_ASYNC = (1) {-# LINE 297 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MS_SYNC = (4) {-# LINE 298 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_MS_INVALIDATE = (2) {-# LINE 299 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "mmap" sysPosixMmap :: Ptr a -> CSize -> CMemProtFlags -> CMemMappingFlags -> CFd -> COff -> IO (Ptr a) foreign import ccall unsafe "munmap" sysPosixMunmap :: Ptr a -> CSize -> IO CInt {-# LINE 307 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "posix_madvise" sysPosixMadvise :: Ptr a -> CSize -> CMemAdvice -> IO CInt {-# LINE 313 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "msync" sysPosixMsync :: Ptr a -> CSize -> CMemSyncFlags -> IO CInt foreign import ccall unsafe "mprotect" sysPosixMprotect :: Ptr a -> CSize -> CMemProtFlags -> IO CInt {-# LINE 321 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "mlock" sysPosixMlock :: Ptr a -> CSize -> IO CInt {-# LINE 327 "Foundation/System/Bindings/Posix.hsc" #-} {-# LINE 329 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "munlock" sysPosixMunlock :: Ptr a -> CSize -> IO CInt {-# LINE 335 "Foundation/System/Bindings/Posix.hsc" #-} sysPosix_SC_PAGESIZE :: CSysconfName sysPosix_SC_PAGESIZE = (30) {-# LINE 338 "Foundation/System/Bindings/Posix.hsc" #-} foreign import ccall unsafe "sysconf" sysPosixSysconf :: CSysconfName -> CLong -------------------------------------------------------------------------------- -- files -------------------------------------------------------------------------------- foreign import ccall unsafe "open" sysPosixOpen :: Ptr CChar -> COpenFlags -> CMode -> IO CFd foreign import ccall unsafe "openat" sysPosixOpenAt :: CFd -> Ptr CChar -> COpenFlags -> CMode -> IO CFd foreign import ccall unsafe "close" sysPosixClose :: CFd -> IO CInt foreign import ccall unsafe "fcntl" sysPosixFnctlNoArg :: CFd -> CInt -> IO CInt foreign import ccall unsafe "fcntl" sysPosixFnctlPtr :: CFd -> CInt -> Ptr a -> IO CInt foreign import ccall unsafe "ftruncate" sysPosixFtruncate :: CFd -> COff -> IO CInt -------------------------------------------------------------------------------- -- directories -------------------------------------------------------------------------------- foreign import ccall unsafe "opendir" sysPosixOpendir :: Ptr CChar -> IO (Ptr CDir) foreign import ccall unsafe "fdopendir" sysPosixFdopendir :: CFd -> IO (Ptr CDir) foreign import ccall unsafe "readdir" sysPosixReaddir :: Ptr CDir -> IO (Ptr CDirent) foreign import ccall unsafe "readdir_r" sysPosixReaddirR :: Ptr CDir -> Ptr CDirent -> Ptr (Ptr CDirent) -> IO CInt foreign import ccall unsafe "telldir" sysPosixTelldir :: Ptr CDir -> IO CLong foreign import ccall unsafe "seekdir" sysPosixSeekdir :: Ptr CDir -> CLong -> IO () foreign import ccall unsafe "rewinddir" sysPosixRewinddir :: Ptr CDir -> IO () foreign import ccall unsafe "closedir" sysPosixClosedir :: Ptr CDir -> IO CInt foreign import ccall unsafe "dirfd" sysPosixDirfd :: Ptr CDir -> IO CFd