{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK prune #-}
module SDL3.Sys.Bindgen.Loadso.Safe (
SDL3.Sys.Bindgen.Loadso.Safe.sDL_LoadObject,
SDL3.Sys.Bindgen.Loadso.Safe.sDL_LoadFunction,
SDL3.Sys.Bindgen.Loadso.Safe.sDL_UnloadObject,
)
where
import Prelude (IO, fmap)
import HsBindgen.Runtime.PtrConst qualified as PtrConst
import HsBindgen.Runtime.Support qualified
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CAPI qualified
import SDL3.Sys.Bindgen.Loadso
import SDL3.Sys.Bindgen.Stdinc qualified
$( HsBindgen.Runtime.Support.CAPI.addCSource
( HsBindgen.Runtime.Support.CAPI.unlines
[ "#define SDL_MAIN_HANDLED"
, "#define SDL_SLOW_MEMCPY"
, "#define SDL_SLOW_MEMMOVE"
, "#define SDL_SLOW_MEMSET"
, "#include <SDL3/SDL_loadso.h>"
, "SDL_SharedObject *hs_bindgen_db107edc1c41c909 ("
, " char const *arg1"
, ")"
, "{"
, " return (SDL_LoadObject)(arg1);"
, "}"
, "SDL_FunctionPointer hs_bindgen_47da86a71a34f8de ("
, " SDL_SharedObject *arg1,"
, " char const *arg2"
, ")"
, "{"
, " return (SDL_LoadFunction)(arg1, arg2);"
, "}"
, "void hs_bindgen_e548a8de357a59b9 ("
, " SDL_SharedObject *arg1"
, ")"
, "{"
, " (SDL_UnloadObject)(arg1);"
, "}"
]
)
)
foreign import ccall safe "hs_bindgen_db107edc1c41c909"
hs_bindgen_db107edc1c41c909_base
:: BG.Ptr BG.Void
-> IO (BG.Ptr BG.Void)
hs_bindgen_db107edc1c41c909
:: PtrConst.PtrConst BG.CChar
-> IO (BG.Ptr SDL_SharedObject)
hs_bindgen_db107edc1c41c909 :: PtrConst CChar -> IO (Ptr SDL_SharedObject)
hs_bindgen_db107edc1c41c909 =
\PtrConst CChar
x0 ->
(Ptr Void -> Ptr SDL_SharedObject)
-> IO (Ptr Void) -> IO (Ptr SDL_SharedObject)
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr Void -> Ptr SDL_SharedObject
FFIType (Ptr SDL_SharedObject) -> Ptr SDL_SharedObject
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType (Ptr Void -> IO (Ptr Void)
hs_bindgen_db107edc1c41c909_base (PtrConst CChar -> FFIType (PtrConst CChar)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType PtrConst CChar
x0))
sDL_LoadObject
:: PtrConst.PtrConst BG.CChar
-> IO (BG.Ptr SDL_SharedObject)
sDL_LoadObject :: PtrConst CChar -> IO (Ptr SDL_SharedObject)
sDL_LoadObject = PtrConst CChar -> IO (Ptr SDL_SharedObject)
hs_bindgen_db107edc1c41c909
foreign import ccall safe "hs_bindgen_47da86a71a34f8de"
hs_bindgen_47da86a71a34f8de_base
:: BG.Ptr BG.Void
-> BG.Ptr BG.Void
-> IO HsBindgen.Runtime.Support.FunPtrVoid
hs_bindgen_47da86a71a34f8de
:: BG.Ptr SDL_SharedObject
-> PtrConst.PtrConst BG.CChar
-> IO SDL3.Sys.Bindgen.Stdinc.SDL_FunctionPointer
hs_bindgen_47da86a71a34f8de :: Ptr SDL_SharedObject -> PtrConst CChar -> IO SDL_FunctionPointer
hs_bindgen_47da86a71a34f8de =
\Ptr SDL_SharedObject
x0 ->
\PtrConst CChar
x1 ->
(FunPtrVoid -> SDL_FunctionPointer)
-> IO FunPtrVoid -> IO SDL_FunctionPointer
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtrVoid -> SDL_FunctionPointer
FFIType SDL_FunctionPointer -> SDL_FunctionPointer
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType (Ptr Void -> Ptr Void -> IO FunPtrVoid
hs_bindgen_47da86a71a34f8de_base (Ptr SDL_SharedObject -> FFIType (Ptr SDL_SharedObject)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr SDL_SharedObject
x0) (PtrConst CChar -> FFIType (PtrConst CChar)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType PtrConst CChar
x1))
sDL_LoadFunction
:: BG.Ptr SDL_SharedObject
-> PtrConst.PtrConst BG.CChar
-> IO SDL3.Sys.Bindgen.Stdinc.SDL_FunctionPointer
sDL_LoadFunction :: Ptr SDL_SharedObject -> PtrConst CChar -> IO SDL_FunctionPointer
sDL_LoadFunction = Ptr SDL_SharedObject -> PtrConst CChar -> IO SDL_FunctionPointer
hs_bindgen_47da86a71a34f8de
foreign import ccall safe "hs_bindgen_e548a8de357a59b9"
hs_bindgen_e548a8de357a59b9_base
:: BG.Ptr BG.Void
-> IO ()
hs_bindgen_e548a8de357a59b9
:: BG.Ptr SDL_SharedObject
-> IO ()
hs_bindgen_e548a8de357a59b9 :: Ptr SDL_SharedObject -> IO ()
hs_bindgen_e548a8de357a59b9 =
\Ptr SDL_SharedObject
x0 ->
Ptr Void -> IO ()
hs_bindgen_e548a8de357a59b9_base (Ptr SDL_SharedObject -> FFIType (Ptr SDL_SharedObject)
forall a. HasFFIType a => a -> FFIType a
BG.toFFIType Ptr SDL_SharedObject
x0)
sDL_UnloadObject
:: BG.Ptr SDL_SharedObject
-> IO ()
sDL_UnloadObject :: Ptr SDL_SharedObject -> IO ()
sDL_UnloadObject = Ptr SDL_SharedObject -> IO ()
hs_bindgen_e548a8de357a59b9