-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | dynamic linker tools for Haskell -- -- Package rtld provides simplistic interface to the dynamic -- linker/loader. It wraps 'dlopen/dlclose' family of functions -- ('LoadLibrary/FreeLibrary' on Windows) and tries to provide a common -- interface to dynamically load foreign libraries at runtime. It is used -- currently as a helper package for curlhs -- (http://hackage.haskell.org/package/curlhs), but is not ready -- for the public use (more tests and design decisions needed). -- -- Package is distributed under ISC License (MIT/BSD-style, see LICENSE -- file for details). It is marked as OtherLicense due to -- limitations of Cabal. -- @package rtld @version 0.0.2 module System.RTLD class RTLD so where withlib so = bracket_ (loadlib so) (freelib so) withlib :: RTLD so => so -> IO a -> IO a loadlib :: RTLD so => so -> IO () freelib :: RTLD so => so -> IO () type LIBH = Ptr () dynload :: String -> IO LIBH dynfree :: LIBH -> IO Bool dynfunc :: LIBH -> Ptr CChar -> IO (FunPtr ()) dynfail :: IO String newtype SYMTABENTRY RTSYM :: (CInt, CInt, Ptr CChar) -> SYMTABENTRY data RTSO a RTSO :: MVar (Maybe (a, LIBH, Int)) -> String -> (a -> String) -> (a -> [String]) -> (a -> IO ()) -> (a -> IO ()) -> (a -> IO (Maybe a)) -> Ptr SYMTABENTRY -> Ptr (FunPtr ()) -> Int -> RTSO a rtPKGMVAR :: RTSO a -> MVar (Maybe (a, LIBH, Int)) rtPKGNAME :: RTSO a -> String rtLIBNAME :: RTSO a -> a -> String rtSONAMES :: RTSO a -> a -> [String] rtONLOAD :: RTSO a -> a -> IO () rtONFREE :: RTSO a -> a -> IO () rtGETAPI :: RTSO a -> a -> IO (Maybe a) rtSYMTAB :: RTSO a -> Ptr SYMTABENTRY rtADRTAB :: RTSO a -> Ptr (FunPtr ()) rtTABLEN :: RTSO a -> Int rtload :: (Ord a, Enum a, Bounded a) => RTSO a -> a -> IO () rtfree :: RTSO a -> IO () instance Storable SYMTABENTRY