From 19faa78e1d518839700c62b37f88f74703c4161f Mon Sep 17 00:00:00 2001 From: ross Date: Fri, 11 Apr 2003 10:11:25 +0000 Subject: [PATCH] [project @ 2003-04-11 10:11:24 by ross] rename GHC.Posix as System.Posix.Internals --- GHC/Handle.hs | 2 +- GHC/IO.hs | 2 +- System/Directory.hs | 2 +- GHC/Posix.hs => System/Posix/Internals.hs | 189 +++++++++++++++-------------- System/Posix/Signals.hsc | 2 +- 5 files changed, 105 insertions(+), 92 deletions(-) rename GHC/Posix.hs => System/Posix/Internals.hs (66%) diff --git a/GHC/Handle.hs b/GHC/Handle.hs index 4381de0..0716477 100644 --- a/GHC/Handle.hs +++ b/GHC/Handle.hs @@ -60,8 +60,8 @@ import Data.Maybe import Foreign import Foreign.C import System.IO.Error +import System.Posix.Internals -import GHC.Posix import GHC.Real import GHC.Arr diff --git a/GHC/IO.hs b/GHC/IO.hs index a192a67..4b0fa9f 100644 --- a/GHC/IO.hs +++ b/GHC/IO.hs @@ -33,10 +33,10 @@ import Foreign.C import System.IO.Error import Data.Maybe import Control.Monad +import System.Posix.Internals import GHC.Enum import GHC.Base -import GHC.Posix import GHC.IOBase import GHC.Handle -- much of the real stuff is in here import GHC.Real diff --git a/System/Directory.hs b/System/Directory.hs index 00aa07a..d37a364 100644 --- a/System/Directory.hs +++ b/System/Directory.hs @@ -72,7 +72,7 @@ import Foreign import Foreign.C #ifdef __GLASGOW_HASKELL__ -import GHC.Posix +import System.Posix.Internals import GHC.IOBase ( IOException(..), IOErrorType(..), ioException ) #endif diff --git a/GHC/Posix.hs b/System/Posix/Internals.hs similarity index 66% rename from GHC/Posix.hs rename to System/Posix/Internals.hs index ca7dc2f..ae46999 100644 --- a/GHC/Posix.hs +++ b/System/Posix/Internals.hs @@ -1,8 +1,9 @@ {-# OPTIONS -fno-implicit-prelude #-} ----------------------------------------------------------------------------- +-- #hide -- | --- Module : GHC.Posix +-- Module : System.Posix.Internals -- Copyright : (c) The University of Glasgow, 1992-2002 -- License : see libraries/base/LICENSE -- @@ -18,7 +19,7 @@ -- ----------------------------------------------------------------------------- -module GHC.Posix where +module System.Posix.Internals where #include "config.h" @@ -31,10 +32,18 @@ import Foreign.C import Data.Bits import Data.Maybe +#ifdef __GLASGOW_HASKELL__ import GHC.Base import GHC.Num import GHC.Real import GHC.IOBase +#else +import System.IO +#endif + +#ifdef __HUGS__ +import Hugs.Prelude (IOException(..), IOErrorType(..)) +#endif -- --------------------------------------------------------------------------- -- Types @@ -54,6 +63,10 @@ type CTms = () type CUtimbuf = () type CUtsname = () +#ifndef __GLASGOW_HASKELL__ +type FD = Int +#endif + -- --------------------------------------------------------------------------- -- stat()-related stuff @@ -96,7 +109,7 @@ statGetType p_stat = do | s_isfifo c_mode || s_issock c_mode || s_ischr c_mode -> return Stream | s_isreg c_mode -> return RegularFile - | otherwise -> ioException ioe_unknownfiletype + | otherwise -> ioError ioe_unknownfiletype ioe_unknownfiletype = IOError Nothing UnsupportedOperation "fdType" @@ -120,7 +133,7 @@ closeFd isStream fd | isStream = c_closesocket fd | otherwise = c_close fd -foreign import stdcall unsafe "closesocket" +foreign import stdcall unsafe "HsBase.h closesocket" c_closesocket :: CInt -> IO CInt #endif @@ -252,13 +265,13 @@ getEcho fd = do then ioException (ioe_unk_error "getEcho" "failed to get echoing") else return (r == 1) -foreign import ccall unsafe "consUtils.h set_console_buffering__" +foreign import ccall unsafe "HsBase.h consUtils.h set_console_buffering__" set_console_buffering :: CInt -> CInt -> IO CInt -foreign import ccall unsafe "consUtils.h set_console_echo__" +foreign import ccall unsafe "HsBase.h consUtils.h set_console_echo__" set_console_echo :: CInt -> CInt -> IO CInt -foreign import ccall unsafe "consUtils.h get_console_echo__" +foreign import ccall unsafe "HsBase.h consUtils.h get_console_echo__" get_console_echo :: CInt -> IO CInt #endif @@ -285,134 +298,134 @@ setNonBlockingFD fd = return () -- ----------------------------------------------------------------------------- -- foreign imports -foreign import ccall unsafe "access" +foreign import ccall unsafe "HsBase.h access" c_access :: CString -> CMode -> IO CInt -foreign import ccall unsafe "chmod" +foreign import ccall unsafe "HsBase.h chmod" c_chmod :: CString -> CMode -> IO CInt -foreign import ccall unsafe "chdir" +foreign import ccall unsafe "HsBase.h chdir" c_chdir :: CString -> IO CInt -foreign import ccall unsafe "close" +foreign import ccall unsafe "HsBase.h close" c_close :: CInt -> IO CInt -foreign import ccall unsafe "closedir" +foreign import ccall unsafe "HsBase.h closedir" c_closedir :: Ptr CDir -> IO CInt -foreign import ccall unsafe "creat" +foreign import ccall unsafe "HsBase.h creat" c_creat :: CString -> CMode -> IO CInt -foreign import ccall unsafe "dup" +foreign import ccall unsafe "HsBase.h dup" c_dup :: CInt -> IO CInt -foreign import ccall unsafe "dup2" +foreign import ccall unsafe "HsBase.h dup2" c_dup2 :: CInt -> CInt -> IO CInt -foreign import ccall unsafe "fstat" +foreign import ccall unsafe "HsBase.h fstat" c_fstat :: CInt -> Ptr CStat -> IO CInt -foreign import ccall unsafe "getcwd" +foreign import ccall unsafe "HsBase.h getcwd" c_getcwd :: Ptr CChar -> CInt -> IO (Ptr CChar) -foreign import ccall unsafe "isatty" +foreign import ccall unsafe "HsBase.h isatty" c_isatty :: CInt -> IO CInt -foreign import ccall unsafe "lseek" +foreign import ccall unsafe "HsBase.h lseek" c_lseek :: CInt -> COff -> CInt -> IO COff -foreign import ccall unsafe "__hscore_lstat" +foreign import ccall unsafe "HsBase.h __hscore_lstat" lstat :: CString -> Ptr CStat -> IO CInt -foreign import ccall unsafe "open" +foreign import ccall unsafe "HsBase.h open" c_open :: CString -> CInt -> CMode -> IO CInt -foreign import ccall unsafe "opendir" +foreign import ccall unsafe "HsBase.h opendir" c_opendir :: CString -> IO (Ptr CDir) -foreign import ccall unsafe "__hscore_mkdir" +foreign import ccall unsafe "HsBase.h __hscore_mkdir" mkdir :: CString -> CInt -> IO CInt -foreign import ccall unsafe "read" +foreign import ccall unsafe "HsBase.h read" c_read :: CInt -> Ptr CChar -> CSize -> IO CSsize -foreign import ccall unsafe "readdir" +foreign import ccall unsafe "HsBase.h readdir" c_readdir :: Ptr CDir -> IO (Ptr CDirent) -foreign import ccall unsafe "rename" +foreign import ccall unsafe "HsBase.h rename" c_rename :: CString -> CString -> IO CInt -foreign import ccall unsafe "rewinddir" +foreign import ccall unsafe "HsBase.h rewinddir" c_rewinddir :: Ptr CDir -> IO () -foreign import ccall unsafe "rmdir" +foreign import ccall unsafe "HsBase.h rmdir" c_rmdir :: CString -> IO CInt -foreign import ccall unsafe "stat" +foreign import ccall unsafe "HsBase.h stat" c_stat :: CString -> Ptr CStat -> IO CInt -foreign import ccall unsafe "umask" +foreign import ccall unsafe "HsBase.h umask" c_umask :: CMode -> IO CMode -foreign import ccall unsafe "write" +foreign import ccall unsafe "HsBase.h write" c_write :: CInt -> Ptr CChar -> CSize -> IO CSsize -foreign import ccall unsafe "unlink" +foreign import ccall unsafe "HsBase.h unlink" c_unlink :: CString -> IO CInt #ifndef mingw32_TARGET_OS -foreign import ccall unsafe "fcntl" +foreign import ccall unsafe "HsBase.h fcntl" c_fcntl_read :: CInt -> CInt -> IO CInt -foreign import ccall unsafe "fcntl" +foreign import ccall unsafe "HsBase.h fcntl" c_fcntl_write :: CInt -> CInt -> CInt -> IO CInt -foreign import ccall unsafe "fcntl" +foreign import ccall unsafe "HsBase.h fcntl" c_fcntl_lock :: CInt -> CInt -> Ptr CFLock -> IO CInt -foreign import ccall unsafe "fork" +foreign import ccall unsafe "HsBase.h fork" c_fork :: IO CPid -foreign import ccall unsafe "getpid" +foreign import ccall unsafe "HsBase.h getpid" c_getpid :: IO CPid -foreign import ccall unsafe "fpathconf" +foreign import ccall unsafe "HsBase.h fpathconf" c_fpathconf :: CInt -> CInt -> IO CLong -foreign import ccall unsafe "link" +foreign import ccall unsafe "HsBase.h link" c_link :: CString -> CString -> IO CInt -foreign import ccall unsafe "mkfifo" +foreign import ccall unsafe "HsBase.h mkfifo" c_mkfifo :: CString -> CMode -> IO CInt -foreign import ccall unsafe "pathconf" +foreign import ccall unsafe "HsBase.h pathconf" c_pathconf :: CString -> CInt -> IO CLong -foreign import ccall unsafe "pipe" +foreign import ccall unsafe "HsBase.h pipe" c_pipe :: Ptr CInt -> IO CInt -foreign import ccall unsafe "__hscore_sigemptyset" +foreign import ccall unsafe "HsBase.h __hscore_sigemptyset" c_sigemptyset :: Ptr CSigset -> IO CInt -foreign import ccall unsafe "__hscore_sigaddset" +foreign import ccall unsafe "HsBase.h __hscore_sigaddset" c_sigaddset :: Ptr CSigset -> CInt -> IO CInt -foreign import ccall unsafe "sigprocmask" +foreign import ccall unsafe "HsBase.h sigprocmask" c_sigprocmask :: CInt -> Ptr CSigset -> Ptr CSigset -> IO CInt -foreign import ccall unsafe "tcgetattr" +foreign import ccall unsafe "HsBase.h tcgetattr" c_tcgetattr :: CInt -> Ptr CTermios -> IO CInt -foreign import ccall unsafe "tcsetattr" +foreign import ccall unsafe "HsBase.h tcsetattr" c_tcsetattr :: CInt -> CInt -> Ptr CTermios -> IO CInt -foreign import ccall unsafe "utime" +foreign import ccall unsafe "HsBase.h utime" c_utime :: CString -> Ptr CUtimbuf -> IO CMode -foreign import ccall unsafe "waitpid" +foreign import ccall unsafe "HsBase.h waitpid" c_waitpid :: CPid -> Ptr CInt -> CInt -> IO CPid #else -foreign import ccall unsafe "_setmode" +foreign import ccall unsafe "HsBase.h _setmode" c__setmode :: CInt -> CInt -> IO CInt -- /* Set "stdin" to have binary mode: */ @@ -424,52 +437,52 @@ foreign import ccall unsafe "_setmode" #endif -- POSIX flags only: -foreign import ccall unsafe "__hscore_o_rdonly" o_RDONLY :: CInt -foreign import ccall unsafe "__hscore_o_wronly" o_WRONLY :: CInt -foreign import ccall unsafe "__hscore_o_rdwr" o_RDWR :: CInt -foreign import ccall unsafe "__hscore_o_append" o_APPEND :: CInt -foreign import ccall unsafe "__hscore_o_creat" o_CREAT :: CInt -foreign import ccall unsafe "__hscore_o_excl" o_EXCL :: CInt -foreign import ccall unsafe "__hscore_o_trunc" o_TRUNC :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_rdonly" o_RDONLY :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_wronly" o_WRONLY :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_rdwr" o_RDWR :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_append" o_APPEND :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_creat" o_CREAT :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_excl" o_EXCL :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_trunc" o_TRUNC :: CInt -- non-POSIX flags. -foreign import ccall unsafe "__hscore_o_noctty" o_NOCTTY :: CInt -foreign import ccall unsafe "__hscore_o_nonblock" o_NONBLOCK :: CInt -foreign import ccall unsafe "__hscore_o_binary" o_BINARY :: CInt - -foreign import ccall unsafe "__hscore_s_isreg" s_isreg :: CMode -> Bool -foreign import ccall unsafe "__hscore_s_ischr" s_ischr :: CMode -> Bool -foreign import ccall unsafe "__hscore_s_isblk" s_isblk :: CMode -> Bool -foreign import ccall unsafe "__hscore_s_isdir" s_isdir :: CMode -> Bool -foreign import ccall unsafe "__hscore_s_isfifo" s_isfifo :: CMode -> Bool - -foreign import ccall unsafe "__hscore_sizeof_stat" sizeof_stat :: Int -foreign import ccall unsafe "__hscore_st_mtime" st_mtime :: Ptr CStat -> IO CTime -foreign import ccall unsafe "__hscore_st_size" st_size :: Ptr CStat -> IO COff -foreign import ccall unsafe "__hscore_st_mode" st_mode :: Ptr CStat -> IO CMode - -foreign import ccall unsafe "__hscore_echo" const_echo :: CInt -foreign import ccall unsafe "__hscore_tcsanow" const_tcsanow :: CInt -foreign import ccall unsafe "__hscore_icanon" const_icanon :: CInt -foreign import ccall unsafe "__hscore_vmin" const_vmin :: CInt -foreign import ccall unsafe "__hscore_vtime" const_vtime :: CInt -foreign import ccall unsafe "__hscore_sigttou" const_sigttou :: CInt -foreign import ccall unsafe "__hscore_sig_block" const_sig_block :: CInt -foreign import ccall unsafe "__hscore_sig_setmask" const_sig_setmask :: CInt -foreign import ccall unsafe "__hscore_f_getfl" const_f_getfl :: CInt -foreign import ccall unsafe "__hscore_f_setfl" const_f_setfl :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_noctty" o_NOCTTY :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_nonblock" o_NONBLOCK :: CInt +foreign import ccall unsafe "HsBase.h __hscore_o_binary" o_BINARY :: CInt + +foreign import ccall unsafe "HsBase.h __hscore_s_isreg" s_isreg :: CMode -> Bool +foreign import ccall unsafe "HsBase.h __hscore_s_ischr" s_ischr :: CMode -> Bool +foreign import ccall unsafe "HsBase.h __hscore_s_isblk" s_isblk :: CMode -> Bool +foreign import ccall unsafe "HsBase.h __hscore_s_isdir" s_isdir :: CMode -> Bool +foreign import ccall unsafe "HsBase.h __hscore_s_isfifo" s_isfifo :: CMode -> Bool + +foreign import ccall unsafe "HsBase.h __hscore_sizeof_stat" sizeof_stat :: Int +foreign import ccall unsafe "HsBase.h __hscore_st_mtime" st_mtime :: Ptr CStat -> IO CTime +foreign import ccall unsafe "HsBase.h __hscore_st_size" st_size :: Ptr CStat -> IO COff +foreign import ccall unsafe "HsBase.h __hscore_st_mode" st_mode :: Ptr CStat -> IO CMode + +foreign import ccall unsafe "HsBase.h __hscore_echo" const_echo :: CInt +foreign import ccall unsafe "HsBase.h __hscore_tcsanow" const_tcsanow :: CInt +foreign import ccall unsafe "HsBase.h __hscore_icanon" const_icanon :: CInt +foreign import ccall unsafe "HsBase.h __hscore_vmin" const_vmin :: CInt +foreign import ccall unsafe "HsBase.h __hscore_vtime" const_vtime :: CInt +foreign import ccall unsafe "HsBase.h __hscore_sigttou" const_sigttou :: CInt +foreign import ccall unsafe "HsBase.h __hscore_sig_block" const_sig_block :: CInt +foreign import ccall unsafe "HsBase.h __hscore_sig_setmask" const_sig_setmask :: CInt +foreign import ccall unsafe "HsBase.h __hscore_f_getfl" const_f_getfl :: CInt +foreign import ccall unsafe "HsBase.h __hscore_f_setfl" const_f_setfl :: CInt #ifndef mingw32_TARGET_OS -foreign import ccall unsafe "__hscore_sizeof_termios" sizeof_termios :: Int -foreign import ccall unsafe "__hscore_sizeof_sigset_t" sizeof_sigset_t :: Int +foreign import ccall unsafe "HsBase.h __hscore_sizeof_termios" sizeof_termios :: Int +foreign import ccall unsafe "HsBase.h __hscore_sizeof_sigset_t" sizeof_sigset_t :: Int -foreign import ccall unsafe "__hscore_lflag" c_lflag :: Ptr CTermios -> IO CTcflag -foreign import ccall unsafe "__hscore_poke_lflag" poke_c_lflag :: Ptr CTermios -> CTcflag -> IO () -foreign import ccall unsafe "__hscore_ptr_c_cc" ptr_c_cc :: Ptr CTermios -> IO (Ptr Word8) +foreign import ccall unsafe "HsBase.h __hscore_lflag" c_lflag :: Ptr CTermios -> IO CTcflag +foreign import ccall unsafe "HsBase.h __hscore_poke_lflag" poke_c_lflag :: Ptr CTermios -> CTcflag -> IO () +foreign import ccall unsafe "HsBase.h __hscore_ptr_c_cc" ptr_c_cc :: Ptr CTermios -> IO (Ptr Word8) #endif #ifndef mingw32_TARGET_OS -foreign import ccall unsafe "__hscore_s_issock" s_issock :: CMode -> Bool +foreign import ccall unsafe "HsBase.h __hscore_s_issock" s_issock :: CMode -> Bool #else s_issock :: CMode -> Bool s_issock cmode = False diff --git a/System/Posix/Signals.hsc b/System/Posix/Signals.hsc index b55d2f4..edc4046 100644 --- a/System/Posix/Signals.hsc +++ b/System/Posix/Signals.hsc @@ -90,7 +90,7 @@ import Foreign import Foreign.C import System.IO.Unsafe import System.Posix.Types -import GHC.Posix +import System.Posix.Internals #ifndef mingw32_TARGET_OS -- WHOLE FILE... -- 1.7.10.4