{-# LINE 1 "System/PosixCompat/Extensions.hsc" #-} -- | This module provides some functions not present in the unix package. {-# LINE 2 "System/PosixCompat/Extensions.hsc" #-} module System.PosixCompat.Extensions ( -- * Device IDs. CMajor, CMinor, deviceMajor, deviceMinor, makeDeviceID ) where {-# LINE 9 "System/PosixCompat/Extensions.hsc" #-} import Foreign.C.Types import System.Posix.Types type CMajor = CUInt type CMinor = CUInt -- | Gets the major number from a 'DeviceID' for a device file. -- -- The portable implementation always returns @0@. deviceMajor :: DeviceID -> CMajor {-# LINE 22 "System/PosixCompat/Extensions.hsc" #-} deviceMajor dev = unix_major dev foreign import ccall unsafe "unix_major" unix_major :: CDev -> CUInt {-# LINE 28 "System/PosixCompat/Extensions.hsc" #-} -- | Gets the minor number from a 'DeviceID' for a device file. -- -- The portable implementation always returns @0@. deviceMinor :: DeviceID -> CMinor {-# LINE 34 "System/PosixCompat/Extensions.hsc" #-} deviceMinor dev = unix_minor dev foreign import ccall unsafe "unix_minor" unix_minor :: CDev -> CUInt {-# LINE 40 "System/PosixCompat/Extensions.hsc" #-} -- | Creates a 'DeviceID' for a device file given a major and minor number. makeDeviceID :: CMajor -> CMinor -> DeviceID {-# LINE 44 "System/PosixCompat/Extensions.hsc" #-} makeDeviceID ma mi = unix_makedev ma mi foreign import ccall unsafe "unix_makedev" unix_makedev :: CUInt -> CUInt -> CDev