{-# LINE 1 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}
{-# LANGUAGE CPP #-}
module GHCi.Utils
    ( getGhcHandle
    ) where

import Foreign.C
import GHC.IO.Handle (Handle())

{-# LINE 9 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}
import GHC.IO.Handle.FD (fdToHandle)

{-# LINE 13 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}



-- | Gets a GHC Handle File description from the given OS Handle or POSIX fd.
getGhcHandle :: CInt -> IO Handle

{-# LINE 19 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}
getGhcHandle handle = _open_osfhandle handle (32768) >>= fdToHandle
{-# LINE 20 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}

foreign import ccall "io.h _open_osfhandle" _open_osfhandle ::
    CInt -> CInt -> IO CInt

{-# LINE 26 "libraries\\libiserv\\src\\GHCi\\Utils.hsc" #-}