{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK prune #-}
module SDL3.Sys.Bindgen.ThreadShims.FunPtr (
SDL3.Sys.Bindgen.ThreadShims.FunPtr.lithon_SDL_CreateThread,
SDL3.Sys.Bindgen.ThreadShims.FunPtr.lithon_SDL_CreateThreadWithProperties,
)
where
import Prelude (IO, fmap)
import HsBindgen.Runtime.PtrConst qualified as PtrConst
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CAPI qualified
import SDL3.Sys.Bindgen.Properties qualified
import SDL3.Sys.Bindgen.Thread 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-bindgen-sys/SDL_thread_shims.h>"
, "/* sdl3bindgensys_SDL3.Sys.Bindgen.ThreadShims_get_lithon_SDL_CreateThread */"
, "__attribute__ ((const))"
, "SDL_Thread *(*hs_bindgen_4e6a4fa76c67ad02 (void)) ("
, " SDL_ThreadFunction arg1,"
, " char const *arg2,"
, " void *arg3"
, ")"
, "{"
, " return &lithon_SDL_CreateThread;"
, "}"
, "/* sdl3bindgensys_SDL3.Sys.Bindgen.ThreadShims_get_lithon_SDL_CreateThreadWithProperties */"
, "__attribute__ ((const))"
, "SDL_Thread *(*hs_bindgen_e399b5c4c93e2e27 (void)) ("
, " SDL_PropertiesID arg1"
, ")"
, "{"
, " return &lithon_SDL_CreateThreadWithProperties;"
, "}"
]
)
)
foreign import ccall unsafe "hs_bindgen_4e6a4fa76c67ad02"
hs_bindgen_4e6a4fa76c67ad02_base
:: IO (BG.FunPtr BG.Void)
hs_bindgen_4e6a4fa76c67ad02
:: IO
( BG.FunPtr
( SDL3.Sys.Bindgen.Thread.SDL_ThreadFunction
-> PtrConst.PtrConst BG.CChar
-> BG.Ptr BG.Void
-> IO (BG.Ptr SDL3.Sys.Bindgen.Thread.SDL_Thread)
)
)
hs_bindgen_4e6a4fa76c67ad02 :: IO
(FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
hs_bindgen_4e6a4fa76c67ad02 =
(FunPtr Void
-> FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
-> IO (FunPtr Void)
-> IO
(FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void
-> FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread))
FFIType
(FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
-> FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_4e6a4fa76c67ad02_base
{-# NOINLINE lithon_SDL_CreateThread #-}
lithon_SDL_CreateThread
:: BG.FunPtr
( SDL3.Sys.Bindgen.Thread.SDL_ThreadFunction
-> PtrConst.PtrConst BG.CChar
-> BG.Ptr BG.Void
-> IO (BG.Ptr SDL3.Sys.Bindgen.Thread.SDL_Thread)
)
lithon_SDL_CreateThread :: FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread))
lithon_SDL_CreateThread =
IO
(FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
-> FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread))
forall a. IO a -> a
BG.unsafePerformIO IO
(FunPtr
(SDL_ThreadFunction
-> PtrConst CChar -> Ptr Void -> IO (Ptr SDL_Thread)))
hs_bindgen_4e6a4fa76c67ad02
foreign import ccall unsafe "hs_bindgen_e399b5c4c93e2e27"
hs_bindgen_e399b5c4c93e2e27_base
:: IO (BG.FunPtr BG.Void)
hs_bindgen_e399b5c4c93e2e27
:: IO
( BG.FunPtr
(SDL3.Sys.Bindgen.Properties.SDL_PropertiesID -> IO (BG.Ptr SDL3.Sys.Bindgen.Thread.SDL_Thread))
)
hs_bindgen_e399b5c4c93e2e27 :: IO (FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
hs_bindgen_e399b5c4c93e2e27 =
(FunPtr Void -> FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
-> IO (FunPtr Void)
-> IO (FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap FunPtr Void -> FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread))
FFIType (FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
-> FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread))
forall a. HasFFIType a => FFIType a -> a
BG.fromFFIType IO (FunPtr Void)
hs_bindgen_e399b5c4c93e2e27_base
{-# NOINLINE lithon_SDL_CreateThreadWithProperties #-}
lithon_SDL_CreateThreadWithProperties
:: BG.FunPtr
(SDL3.Sys.Bindgen.Properties.SDL_PropertiesID -> IO (BG.Ptr SDL3.Sys.Bindgen.Thread.SDL_Thread))
lithon_SDL_CreateThreadWithProperties :: FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread))
lithon_SDL_CreateThreadWithProperties =
IO (FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
-> FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread))
forall a. IO a -> a
BG.unsafePerformIO IO (FunPtr (SDL_PropertiesID -> IO (Ptr SDL_Thread)))
hs_bindgen_e399b5c4c93e2e27