190 lines
4.0 KiB
Haskell
190 lines
4.0 KiB
Haskell
{-# LANGUAGE CPP #-}
|
|
{-# LANGUAGE Safe #-}
|
|
-----------------------------------------------------------------------------
|
|
-- |
|
|
-- Module : System.Posix
|
|
-- Copyright : (c) The University of Glasgow 2002
|
|
-- License : BSD-style (see the file libraries/base/LICENSE)
|
|
--
|
|
-- Maintainer : libraries@haskell.org
|
|
-- Stability : provisional
|
|
-- Portability : non-portable (requires POSIX)
|
|
--
|
|
-- <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008> support
|
|
--
|
|
-----------------------------------------------------------------------------
|
|
|
|
module System.Posix (
|
|
module System.Posix.Types,
|
|
module System.Posix.Signals,
|
|
module System.Posix.Directory,
|
|
module System.Posix.Files,
|
|
module System.Posix.Unistd,
|
|
module System.Posix.IO,
|
|
module System.Posix.Env,
|
|
module System.Posix.Process,
|
|
module System.Posix.Temp,
|
|
module System.Posix.Terminal,
|
|
module System.Posix.Time,
|
|
module System.Posix.User,
|
|
module System.Posix.Resource,
|
|
module System.Posix.Semaphore,
|
|
module System.Posix.SharedMem,
|
|
module System.Posix.DynamicLinker,
|
|
-- XXX 'Module' type clashes with GHC
|
|
-- module System.Posix.DynamicLinker.Module
|
|
) where
|
|
|
|
import System.Posix.Types
|
|
import System.Posix.Signals
|
|
import System.Posix.Directory
|
|
import System.Posix.Files
|
|
import System.Posix.Unistd
|
|
import System.Posix.Process
|
|
import System.Posix.IO
|
|
import System.Posix.Env
|
|
import System.Posix.Temp
|
|
import System.Posix.Terminal
|
|
import System.Posix.Time
|
|
import System.Posix.User
|
|
import System.Posix.Resource
|
|
import System.Posix.Semaphore
|
|
import System.Posix.SharedMem
|
|
-- XXX: bad planning, we have two constructors called "Default"
|
|
import System.Posix.DynamicLinker hiding (Default)
|
|
--import System.Posix.DynamicLinker.Module
|
|
|
|
{- TODO
|
|
|
|
Here we detail our support for the IEEE Std 1003.1-2001 standard. For
|
|
each header file defined by the standard, we categorise its
|
|
functionality as
|
|
|
|
- "supported"
|
|
|
|
Full equivalent functionality is provided by the specified Haskell
|
|
module.
|
|
|
|
- "unsupported" (functionality not provided by a Haskell module)
|
|
|
|
The functionality is not currently provided.
|
|
|
|
- "to be supported"
|
|
|
|
Currently unsupported, but support is planned for the future.
|
|
|
|
Exceptions are listed where appropriate.
|
|
|
|
Interfaces supported
|
|
--------------------
|
|
|
|
unix package:
|
|
|
|
dirent.h System.Posix.Directory
|
|
dlfcn.h System.Posix.DynamicLinker
|
|
errno.h Foreign.C.Error
|
|
fcntl.h System.Posix.IO
|
|
signal.h System.Posix.Signals
|
|
sys/stat.h System.Posix.Files
|
|
sys/times.h System.Posix.Process
|
|
sys/types.h System.Posix.Types (with exceptions...)
|
|
sys/utsname.h System.Posix.Unistd
|
|
sys/wait.h System.Posix.Process
|
|
termios.h System.Posix.Terminal (check exceptions)
|
|
unistd.h System.Posix.*
|
|
utime.h System.Posix.Files
|
|
pwd.h System.Posix.User
|
|
grp.h System.Posix.User
|
|
stdlib.h: System.Posix.Env (getenv()/setenv()/unsetenv())
|
|
System.Posix.Temp (mkstemp())
|
|
sys/resource.h: System.Posix.Resource (get/setrlimit() only)
|
|
|
|
regex-posix package:
|
|
|
|
regex.h Text.Regex.Posix
|
|
|
|
network package:
|
|
|
|
arpa/inet.h
|
|
net/if.h
|
|
netinet/in.h
|
|
netinet/tcp.h
|
|
sys/socket.h
|
|
sys/un.h
|
|
|
|
To be supported
|
|
---------------
|
|
|
|
limits.h (pathconf()/fpathconf() already done)
|
|
poll.h
|
|
sys/resource.h (getrusage(): use instead of times() for getProcessTimes?)
|
|
sys/select.h
|
|
sys/statvfs.h (?)
|
|
sys/time.h (but maybe not the itimer?)
|
|
time.h (System.Posix.Time)
|
|
stdio.h (popen only: System.Posix.IO)
|
|
sys/mman.h
|
|
|
|
Unsupported interfaces
|
|
----------------------
|
|
|
|
aio.h
|
|
assert.h
|
|
complex.h
|
|
cpio.h
|
|
ctype.h
|
|
fenv.h
|
|
float.h
|
|
fmtmsg.h
|
|
fnmatch.h
|
|
ftw.h
|
|
glob.h
|
|
iconv.h
|
|
inttypes.h
|
|
iso646.h
|
|
langinfo.h
|
|
libgen.h
|
|
locale.h (see System.Locale)
|
|
math.h
|
|
monetary.h
|
|
mqueue.h
|
|
ndbm.h
|
|
netdb.h
|
|
nl_types.h
|
|
pthread.h
|
|
sched.h
|
|
search.h
|
|
semaphore.h
|
|
setjmp.h
|
|
spawn.h
|
|
stdarg.h
|
|
stdbool.h
|
|
stddef.h
|
|
stdint.h
|
|
stdio.h except: popen()
|
|
stdlib.h except: exit(): System.Posix.Process
|
|
free()/malloc(): Foreign.Marshal.Alloc
|
|
getenv()/setenv(): ?? System.Environment
|
|
rand() etc.: System.Random
|
|
string.h
|
|
strings.h
|
|
stropts.h
|
|
sys/ipc.h
|
|
sys/msg.h
|
|
sys/sem.h
|
|
sys/shm.h
|
|
sys/timeb.h
|
|
sys/uio.h
|
|
syslog.h
|
|
tar.h
|
|
tgmath.h
|
|
trace.h
|
|
ucontext.h
|
|
ulimit.h
|
|
utmpx.h
|
|
wchar.h
|
|
wctype.h
|
|
wordexp.h
|
|
|
|
-}
|