-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | This package provides portable implementations of parts of the unix
--   package. This package re-exports the unix package when available. When
--   it isn't available, portable implementations are used.
@package unix-compat
@version 0.7.4.1


-- | This module makes the operations exported by
--   <tt>System.Posix.Files</tt> available on all platforms. On POSIX
--   systems it re-exports operations from <tt>System.Posix.Files</tt>. On
--   other platforms it emulates the operations as far as possible.
--   
--   /NOTE: the portable implementations are not well tested, in some cases
--   functions are only stubs./
module System.PosixCompat.Files
unionFileModes :: FileMode -> FileMode -> FileMode
intersectFileModes :: FileMode -> FileMode -> FileMode
nullFileMode :: FileMode
ownerReadMode :: FileMode
ownerWriteMode :: FileMode
ownerExecuteMode :: FileMode
ownerModes :: FileMode
groupReadMode :: FileMode
groupWriteMode :: FileMode
groupExecuteMode :: FileMode
groupModes :: FileMode
otherReadMode :: FileMode
otherWriteMode :: FileMode
otherExecuteMode :: FileMode
otherModes :: FileMode
setUserIDMode :: FileMode
setGroupIDMode :: FileMode
stdFileMode :: FileMode
accessModes :: FileMode
setFileMode :: FilePath -> FileMode -> IO ()
setFdMode :: Fd -> FileMode -> IO ()
setFileCreationMask :: FileMode -> IO FileMode
fileAccess :: FilePath -> Bool -> Bool -> Bool -> IO Bool
fileExist :: FilePath -> IO Bool
data FileStatus
getFileStatus :: FilePath -> IO FileStatus
getFdStatus :: Fd -> IO FileStatus
getSymbolicLinkStatus :: FilePath -> IO FileStatus
deviceID :: FileStatus -> DeviceID
fileID :: FileStatus -> FileID
fileMode :: FileStatus -> FileMode
linkCount :: FileStatus -> LinkCount
fileOwner :: FileStatus -> UserID
fileGroup :: FileStatus -> GroupID
specialDeviceID :: FileStatus -> DeviceID
fileSize :: FileStatus -> FileOffset
accessTime :: FileStatus -> EpochTime
modificationTime :: FileStatus -> EpochTime
statusChangeTime :: FileStatus -> EpochTime
accessTimeHiRes :: FileStatus -> POSIXTime
modificationTimeHiRes :: FileStatus -> POSIXTime
statusChangeTimeHiRes :: FileStatus -> POSIXTime
isBlockDevice :: FileStatus -> Bool
isCharacterDevice :: FileStatus -> Bool
isNamedPipe :: FileStatus -> Bool
isRegularFile :: FileStatus -> Bool
isDirectory :: FileStatus -> Bool
isSymbolicLink :: FileStatus -> Bool
isSocket :: FileStatus -> Bool
createNamedPipe :: FilePath -> FileMode -> IO ()
createDevice :: FilePath -> FileMode -> DeviceID -> IO ()
createLink :: FilePath -> FilePath -> IO ()
removeLink :: FilePath -> IO ()
createSymbolicLink :: FilePath -> FilePath -> IO ()
readSymbolicLink :: FilePath -> IO FilePath
rename :: FilePath -> FilePath -> IO ()
setOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO ()
setFdOwnerAndGroup :: Fd -> UserID -> GroupID -> IO ()
setSymbolicLinkOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO ()
setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
touchFile :: FilePath -> IO ()
setFileSize :: FilePath -> FileOffset -> IO ()
setFdSize :: Fd -> FileOffset -> IO ()
data PathVar
FileSizeBits :: PathVar
LinkLimit :: PathVar
InputLineLimit :: PathVar
InputQueueLimit :: PathVar
FileNameLimit :: PathVar
PathNameLimit :: PathVar
PipeBufferLimit :: PathVar
SymbolicLinkLimit :: PathVar
SetOwnerAndGroupIsRestricted :: PathVar
FileNamesAreNotTruncated :: PathVar
VDisableChar :: PathVar
AsyncIOAvailable :: PathVar
PrioIOAvailable :: PathVar
SyncIOAvailable :: PathVar
getPathVar :: FilePath -> PathVar -> IO Limit
getFdPathVar :: Fd -> PathVar -> IO Limit


-- | This module intends to make the operations of
--   <tt>System.Posix.Process</tt> available on all platforms.
module System.PosixCompat.Process
getProcessID :: IO ProcessID


-- | This module makes the operations exported by
--   <tt>System.Posix.Temp</tt> available on all platforms. On POSIX
--   systems it re-exports operations from <tt>System.Posix.Temp</tt>, on
--   other platforms it emulates the operations as far as possible.
module System.PosixCompat.Temp
mkstemp :: String -> IO (FilePath, Handle)


-- | This module makes the operations exported by
--   <tt>System.Posix.Time</tt> available on all platforms. On POSIX
--   systems it re-exports operations from <tt>System.Posix.Time</tt>, on
--   other platforms it emulates the operations as far as possible.
module System.PosixCompat.Time
epochTime :: IO EpochTime


-- | This module re-exports the types from <tt>System.Posix.Types</tt> on
--   all platforms.
--   
--   On Windows <a>UserID</a>, <a>GroupID</a> and <a>LinkCount</a> are
--   missing, so they are redefined by this module.
module System.PosixCompat.Types
type ByteCount = CSize
newtype CBlkCnt
CBlkCnt :: Int64 -> CBlkCnt
newtype CBlkSize
CBlkSize :: Int64 -> CBlkSize
newtype CCc
CCc :: Word8 -> CCc
newtype CClockId
CClockId :: Int32 -> CClockId
newtype CDev
CDev :: Word64 -> CDev
newtype CFsBlkCnt
CFsBlkCnt :: Word64 -> CFsBlkCnt
newtype CFsFilCnt
CFsFilCnt :: Word64 -> CFsFilCnt
newtype CGid
CGid :: Word32 -> CGid
newtype CId
CId :: Word32 -> CId
newtype CIno
CIno :: Word64 -> CIno
newtype CKey
CKey :: Int32 -> CKey
newtype CMode
CMode :: Word32 -> CMode
newtype CNfds
CNfds :: Word64 -> CNfds
newtype CNlink
CNlink :: Word64 -> CNlink
newtype COff
COff :: Int64 -> COff
newtype CPid
CPid :: Int32 -> CPid
newtype CRLim
CRLim :: Word64 -> CRLim
newtype CSocklen
CSocklen :: Word32 -> CSocklen
newtype CSpeed
CSpeed :: Word32 -> CSpeed
newtype CSsize
CSsize :: Int64 -> CSsize
newtype CTcflag
CTcflag :: Word32 -> CTcflag
newtype CTimer
CTimer :: CUIntPtr -> CTimer
newtype CUid
CUid :: Word32 -> CUid
type ClockTick = CClock
type DeviceID = CDev
type EpochTime = CTime
newtype Fd
Fd :: CInt -> Fd
type FileID = CIno
type FileMode = CMode
type FileOffset = COff
type GroupID = CGid
type Limit = CLong
type LinkCount = CNlink
type ProcessGroupID = CPid
type ProcessID = CPid
type UserID = CUid


-- | This module provides some functions not present in the unix package.
module System.PosixCompat.Extensions
type CMajor = CUInt
type CMinor = CUInt

-- | Gets the major number from a <a>DeviceID</a> for a device file.
--   
--   The portable implementation always returns <tt>0</tt>.
deviceMajor :: DeviceID -> CMajor

-- | Gets the minor number from a <a>DeviceID</a> for a device file.
--   
--   The portable implementation always returns <tt>0</tt>.
deviceMinor :: DeviceID -> CMinor

-- | Creates a <a>DeviceID</a> for a device file given a major and minor
--   number.
makeDeviceID :: CMajor -> CMinor -> DeviceID


-- | This module makes the operations exported by
--   <tt>System.Posix.Unistd</tt> available on all platforms. On POSIX
--   systems it re-exports operations from <tt>System.Posix.Unistd</tt>, on
--   other platforms it emulates the operations as far as possible.
module System.PosixCompat.Unistd
data SystemID
SystemID :: String -> String -> String -> String -> String -> SystemID
[systemName] :: SystemID -> String
[nodeName] :: SystemID -> String
[release] :: SystemID -> String
[version] :: SystemID -> String
[machine] :: SystemID -> String
getSystemID :: IO SystemID
sleep :: Int -> IO Int
usleep :: Int -> IO ()
nanosleep :: Integer -> IO ()


-- | The <tt>unix-compat</tt> package provides portable implementations of
--   parts of the <tt>unix</tt> package. On POSIX system it re-exports
--   operations from the <tt>unix</tt> package, on other platforms it
--   emulates the operations as far as possible.
module System.PosixCompat

-- | <a>True</a> if unix-compat is using its portable implementation, or
--   <a>False</a> if the unix package is simply being re-exported.
usingPortableImpl :: Bool
