module Bindings.Friso.Raw.FrisoAPI where
import Foreign.Ptr
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
type C'ushort_t = CUShort
type C'uchar_t = CUChar
type C'uint_t = CUInt
type C'fstring = CString
data C'string_buffer_entry = C'string_buffer_entry{
c'string_buffer_entry'buffer :: CString,
c'string_buffer_entry'length :: CUInt,
c'string_buffer_entry'allocs :: CUInt
} deriving (Eq,Show)
p'string_buffer_entry'buffer p = plusPtr p 0
p'string_buffer_entry'buffer :: Ptr (C'string_buffer_entry) -> Ptr (CString)
p'string_buffer_entry'length p = plusPtr p 8
p'string_buffer_entry'length :: Ptr (C'string_buffer_entry) -> Ptr (CUInt)
p'string_buffer_entry'allocs p = plusPtr p 12
p'string_buffer_entry'allocs :: Ptr (C'string_buffer_entry) -> Ptr (CUInt)
instance Storable C'string_buffer_entry where
sizeOf _ = 16
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 12
return $ C'string_buffer_entry v0 v1 v2
poke p (C'string_buffer_entry v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 12 v2
return ()
type C'string_buffer_t = C'string_buffer_entry
foreign import ccall "new_string_buffer_with_opacity" c'new_string_buffer_with_opacity
:: CUInt -> IO (Ptr C'string_buffer_entry)
foreign import ccall "&new_string_buffer_with_opacity" p'new_string_buffer_with_opacity
:: FunPtr (CUInt -> IO (Ptr C'string_buffer_entry))
foreign import ccall "new_string_buffer_with_string" c'new_string_buffer_with_string
:: CString -> IO (Ptr C'string_buffer_entry)
foreign import ccall "&new_string_buffer_with_string" p'new_string_buffer_with_string
:: FunPtr (CString -> IO (Ptr C'string_buffer_entry))
foreign import ccall "string_buffer_append" c'string_buffer_append
:: Ptr C'string_buffer_entry -> CString -> IO ()
foreign import ccall "&string_buffer_append" p'string_buffer_append
:: FunPtr (Ptr C'string_buffer_entry -> CString -> IO ())
foreign import ccall "string_buffer_append_char" c'string_buffer_append_char
:: Ptr C'string_buffer_entry -> CString -> IO ()
foreign import ccall "&string_buffer_append_char" p'string_buffer_append_char
:: FunPtr (Ptr C'string_buffer_entry -> CString -> IO ())
foreign import ccall "string_buffer_insert" c'string_buffer_insert
:: (Ptr C'string_buffer_entry) -> CUInt -> CString -> IO ()
foreign import ccall "&string_buffer_insert" p'string_buffer_insert
:: FunPtr ((Ptr C'string_buffer_entry) -> CUInt -> CString -> IO ())
foreign import ccall "string_buffer_remove" c'string_buffer_remove
:: Ptr C'string_buffer_entry -> CUInt -> CUInt -> IO CString
foreign import ccall "&string_buffer_remove" p'string_buffer_remove
:: FunPtr (Ptr C'string_buffer_entry -> CUInt -> CUInt -> IO CString)
foreign import ccall "string_buffer_trim" c'string_buffer_trim
:: Ptr C'string_buffer_entry -> IO (Ptr C'string_buffer_entry)
foreign import ccall "&string_buffer_trim" p'string_buffer_trim
:: FunPtr (Ptr C'string_buffer_entry -> IO (Ptr C'string_buffer_entry))
foreign import ccall "string_buffer_devote" c'string_buffer_devote
:: Ptr C'string_buffer_entry -> IO CString
foreign import ccall "&string_buffer_devote" p'string_buffer_devote
:: FunPtr (Ptr C'string_buffer_entry -> IO CString)
foreign import ccall "string_buffer_clear" c'string_buffer_clear
:: Ptr C'string_buffer_entry -> IO ()
foreign import ccall "&string_buffer_clear" p'string_buffer_clear
:: FunPtr (Ptr C'string_buffer_entry -> IO ())
foreign import ccall "free_string_buffer" c'free_string_buffer
:: Ptr C'string_buffer_entry -> IO ()
foreign import ccall "&free_string_buffer" p'free_string_buffer
:: FunPtr (Ptr C'string_buffer_entry -> IO ())
data C'string_split_entry = C'string_split_entry{
c'string_split_entry'source :: CString,
c'string_split_entry'srcLen :: CUInt,
c'string_split_entry'delimiter :: CString,
c'string_split_entry'delLen :: CUInt,
c'string_split_entry'idx :: CUInt
} deriving (Eq,Show)
p'string_split_entry'source p = plusPtr p 0
p'string_split_entry'source :: Ptr (C'string_split_entry) -> Ptr (CString)
p'string_split_entry'srcLen p = plusPtr p 8
p'string_split_entry'srcLen :: Ptr (C'string_split_entry) -> Ptr (CUInt)
p'string_split_entry'delimiter p = plusPtr p 16
p'string_split_entry'delimiter :: Ptr (C'string_split_entry) -> Ptr (CString)
p'string_split_entry'delLen p = plusPtr p 24
p'string_split_entry'delLen :: Ptr (C'string_split_entry) -> Ptr (CUInt)
p'string_split_entry'idx p = plusPtr p 28
p'string_split_entry'idx :: Ptr (C'string_split_entry) -> Ptr (CUInt)
instance Storable C'string_split_entry where
sizeOf _ = 32
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 16
v3 <- peekByteOff p 24
v4 <- peekByteOff p 28
return $ C'string_split_entry v0 v1 v2 v3 v4
poke p (C'string_split_entry v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 16 v2
pokeByteOff p 24 v3
pokeByteOff p 28 v4
return ()
type C'string_split_t = C'string_split_entry
foreign import ccall "new_string_split" c'new_string_split
:: CString -> CString -> IO (Ptr C'string_split_entry)
foreign import ccall "&new_string_split" p'new_string_split
:: FunPtr (CString -> CString -> IO (Ptr C'string_split_entry))
foreign import ccall "string_split_reset" c'string_split_reset
:: Ptr C'string_split_entry -> CString -> CString -> IO ()
foreign import ccall "&string_split_reset" p'string_split_reset
:: FunPtr (Ptr C'string_split_entry -> CString -> CString -> IO ())
foreign import ccall "string_split_set_source" c'string_split_set_source
:: Ptr C'string_split_entry -> CString -> IO ()
foreign import ccall "&string_split_set_source" p'string_split_set_source
:: FunPtr (Ptr C'string_split_entry -> CString -> IO ())
foreign import ccall "string_split_set_delimiter" c'string_split_set_delimiter
:: Ptr C'string_split_entry -> CString -> IO ()
foreign import ccall "&string_split_set_delimiter" p'string_split_set_delimiter
:: FunPtr (Ptr C'string_split_entry -> CString -> IO ())
foreign import ccall "free_string_split" c'free_string_split
:: Ptr C'string_split_entry -> IO ()
foreign import ccall "&free_string_split" p'free_string_split
:: FunPtr (Ptr C'string_split_entry -> IO ())
foreign import ccall "string_split_next" c'string_split_next
:: Ptr C'string_split_entry -> CString -> IO CString
foreign import ccall "&string_split_next" p'string_split_next
:: FunPtr (Ptr C'string_split_entry -> CString -> IO CString)
data C'friso_array_entry = C'friso_array_entry{
c'friso_array_entry'items :: Ptr (Ptr ()),
c'friso_array_entry'allocs :: CUInt,
c'friso_array_entry'length :: CUInt
} deriving (Eq,Show)
p'friso_array_entry'items p = plusPtr p 0
p'friso_array_entry'items :: Ptr (C'friso_array_entry) -> Ptr (Ptr (Ptr ()))
p'friso_array_entry'allocs p = plusPtr p 8
p'friso_array_entry'allocs :: Ptr (C'friso_array_entry) -> Ptr (CUInt)
p'friso_array_entry'length p = plusPtr p 12
p'friso_array_entry'length :: Ptr (C'friso_array_entry) -> Ptr (CUInt)
instance Storable C'friso_array_entry where
sizeOf _ = 16
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 12
return $ C'friso_array_entry v0 v1 v2
poke p (C'friso_array_entry v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 12 v2
return ()
type C'friso_array_t = C'friso_array_entry
foreign import ccall "new_array_list_with_opacity" c'new_array_list_with_opacity
:: CUInt -> IO (Ptr C'friso_array_entry)
foreign import ccall "&new_array_list_with_opacity" p'new_array_list_with_opacity
:: FunPtr (CUInt -> IO (Ptr C'friso_array_entry))
foreign import ccall "free_array_list" c'free_array_list
:: Ptr C'friso_array_entry -> IO ()
foreign import ccall "&free_array_list" p'free_array_list
:: FunPtr (Ptr C'friso_array_entry -> IO ())
foreign import ccall "array_list_add" c'array_list_add
:: Ptr C'friso_array_entry -> Ptr () -> IO ()
foreign import ccall "&array_list_add" p'array_list_add
:: FunPtr (Ptr C'friso_array_entry -> Ptr () -> IO ())
foreign import ccall "array_list_insert" c'array_list_insert
:: Ptr C'friso_array_entry -> CUInt -> Ptr () -> IO ()
foreign import ccall "&array_list_insert" p'array_list_insert
:: FunPtr (Ptr C'friso_array_entry -> CUInt -> Ptr () -> IO ())
foreign import ccall "array_list_get" c'array_list_get
:: Ptr C'friso_array_entry -> CUInt -> IO (Ptr ())
foreign import ccall "&array_list_get" p'array_list_get
:: FunPtr (Ptr C'friso_array_entry -> CUInt -> IO (Ptr ()))
foreign import ccall "array_list_set" c'array_list_set
:: Ptr C'friso_array_entry -> CUInt -> Ptr () -> IO (Ptr ())
foreign import ccall "&array_list_set" p'array_list_set
:: FunPtr (Ptr C'friso_array_entry -> CUInt -> Ptr () -> IO (Ptr ()))
foreign import ccall "array_list_remove" c'array_list_remove
:: Ptr C'friso_array_entry -> CUInt -> IO (Ptr ())
foreign import ccall "&array_list_remove" p'array_list_remove
:: FunPtr (Ptr C'friso_array_entry -> CUInt -> IO (Ptr ()))
foreign import ccall "array_list_trim" c'array_list_trim
:: Ptr C'friso_array_entry -> IO (Ptr C'friso_array_entry)
foreign import ccall "&array_list_trim" p'array_list_trim
:: FunPtr (Ptr C'friso_array_entry -> IO (Ptr C'friso_array_entry))
foreign import ccall "array_list_clear" c'array_list_clear
:: Ptr C'friso_array_entry -> IO (Ptr C'friso_array_entry)
foreign import ccall "&array_list_clear" p'array_list_clear
:: FunPtr (Ptr C'friso_array_entry -> IO (Ptr C'friso_array_entry))
data C'friso_link_node = C'friso_link_node{
c'friso_link_node'value :: Ptr (),
c'friso_link_node'prev :: Ptr C'friso_link_node,
c'friso_link_node'next :: Ptr C'friso_link_node
} deriving (Eq,Show)
p'friso_link_node'value p = plusPtr p 0
p'friso_link_node'value :: Ptr (C'friso_link_node) -> Ptr (Ptr ())
p'friso_link_node'prev p = plusPtr p 8
p'friso_link_node'prev :: Ptr (C'friso_link_node) -> Ptr (Ptr C'friso_link_node)
p'friso_link_node'next p = plusPtr p 16
p'friso_link_node'next :: Ptr (C'friso_link_node) -> Ptr (Ptr C'friso_link_node)
instance Storable C'friso_link_node where
sizeOf _ = 24
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 16
return $ C'friso_link_node v0 v1 v2
poke p (C'friso_link_node v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 16 v2
return ()
type C'link_node_entry = C'friso_link_node
type C'link_node_t = C'friso_link_node
data C'friso_link_entry = C'friso_link_entry{
c'friso_link_entry'head :: C'friso_link_node,
c'friso_link_entry'tail :: C'friso_link_node,
c'friso_link_entry'size :: CUInt
} deriving (Eq,Show)
p'friso_link_entry'head p = plusPtr p 0
p'friso_link_entry'head :: Ptr (C'friso_link_entry) -> Ptr (C'friso_link_node)
p'friso_link_entry'tail p = plusPtr p 8
p'friso_link_entry'tail :: Ptr (C'friso_link_entry) -> Ptr (C'friso_link_node)
p'friso_link_entry'size p = plusPtr p 16
p'friso_link_entry'size :: Ptr (C'friso_link_entry) -> Ptr (CUInt)
instance Storable C'friso_link_entry where
sizeOf _ = 24
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 16
return $ C'friso_link_entry v0 v1 v2
poke p (C'friso_link_entry v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 16 v2
return ()
type C'friso_link_t = C'friso_link_entry
foreign import ccall "new_link_list" c'new_link_list
:: IO (Ptr C'friso_link_entry)
foreign import ccall "&new_link_list" p'new_link_list
:: FunPtr (IO (Ptr C'friso_link_entry))
foreign import ccall "free_link_list" c'free_link_list
:: Ptr C'friso_link_entry -> IO ()
foreign import ccall "&free_link_list" p'free_link_list
:: FunPtr (Ptr C'friso_link_entry -> IO ())
foreign import ccall "link_list_clear" c'link_list_clear
:: Ptr C'friso_link_entry -> IO (Ptr C'friso_link_entry)
foreign import ccall "&link_list_clear" p'link_list_clear
:: FunPtr (Ptr C'friso_link_entry -> IO (Ptr C'friso_link_entry))
foreign import ccall "link_list_add" c'link_list_add
:: Ptr C'friso_link_entry -> Ptr () -> IO ()
foreign import ccall "&link_list_add" p'link_list_add
:: FunPtr (Ptr C'friso_link_entry -> Ptr () -> IO ())
foreign import ccall "link_list_insert_before" c'link_list_insert_before
:: Ptr C'friso_link_entry -> CUInt -> Ptr () -> IO ()
foreign import ccall "&link_list_insert_before" p'link_list_insert_before
:: FunPtr (Ptr C'friso_link_entry -> CUInt -> Ptr () -> IO ())
foreign import ccall "link_list_get" c'link_list_get
:: Ptr C'friso_link_entry -> CUInt -> IO (Ptr ())
foreign import ccall "&link_list_get" p'link_list_get
:: FunPtr (Ptr C'friso_link_entry -> CUInt -> IO (Ptr ()))
foreign import ccall "link_list_set" c'link_list_set
:: Ptr C'friso_link_entry -> CUInt -> Ptr () -> IO (Ptr ())
foreign import ccall "&link_list_set" p'link_list_set
:: FunPtr (Ptr C'friso_link_entry -> CUInt -> Ptr () -> IO (Ptr ()))
foreign import ccall "link_list_remove" c'link_list_remove
:: Ptr C'friso_link_entry -> CUInt -> IO (Ptr ())
foreign import ccall "&link_list_remove" p'link_list_remove
:: FunPtr (Ptr C'friso_link_entry -> CUInt -> IO (Ptr ()))
foreign import ccall "link_list_remove_node" c'link_list_remove_node
:: Ptr C'friso_link_entry -> (Ptr C'friso_link_node) -> IO (Ptr ())
foreign import ccall "&link_list_remove_node" p'link_list_remove_node
:: FunPtr (Ptr C'friso_link_entry -> (Ptr C'friso_link_node) -> IO (Ptr ()))
foreign import ccall "link_list_remove_first" c'link_list_remove_first
:: Ptr C'friso_link_entry -> IO (Ptr ())
foreign import ccall "&link_list_remove_first" p'link_list_remove_first
:: FunPtr (Ptr C'friso_link_entry -> IO (Ptr ()))
foreign import ccall "link_list_remove_last" c'link_list_remove_last
:: Ptr C'friso_link_entry -> IO (Ptr ())
foreign import ccall "&link_list_remove_last" p'link_list_remove_last
:: FunPtr (Ptr C'friso_link_entry -> IO (Ptr ()))
foreign import ccall "link_list_add_last" c'link_list_add_last
:: Ptr C'friso_link_entry -> Ptr () -> IO ()
foreign import ccall "&link_list_add_last" p'link_list_add_last
:: FunPtr (Ptr C'friso_link_entry -> Ptr () -> IO ())
foreign import ccall "link_list_add_first" c'link_list_add_first
:: Ptr C'friso_link_entry -> Ptr () -> IO ()
foreign import ccall "&link_list_add_first" p'link_list_add_first
:: FunPtr (Ptr C'friso_link_entry -> Ptr () -> IO ())
data C'hash_entry = C'hash_entry{
c'hash_entry'_key :: CString,
c'hash_entry'_val :: Ptr (),
c'hash_entry'_next :: Ptr C'hash_entry
} deriving (Eq,Show)
p'hash_entry'_key p = plusPtr p 0
p'hash_entry'_key :: Ptr (C'hash_entry) -> Ptr (CString)
p'hash_entry'_val p = plusPtr p 8
p'hash_entry'_val :: Ptr (C'hash_entry) -> Ptr (Ptr ())
p'hash_entry'_next p = plusPtr p 16
p'hash_entry'_next :: Ptr (C'hash_entry) -> Ptr (Ptr C'hash_entry)
instance Storable C'hash_entry where
sizeOf _ = 24
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 16
return $ C'hash_entry v0 v1 v2
poke p (C'hash_entry v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 16 v2
return ()
type C'friso_hash_entry = C'hash_entry
type C'hash_entry_t = C'hash_entry
type C'fhash_callback_fn_t = FunPtr (Ptr C'hash_entry -> IO ())
foreign import ccall "wrapper" mk'fhash_callback_fn_t
:: (Ptr C'hash_entry -> IO ()) -> IO C'fhash_callback_fn_t
foreign import ccall "dynamic" mK'fhash_callback_fn_t
:: C'fhash_callback_fn_t -> (Ptr C'hash_entry -> IO ())
data C'friso_hash_cdt = C'friso_hash_cdt{
c'friso_hash_cdt'length :: CUInt,
c'friso_hash_cdt'size :: CUInt,
c'friso_hash_cdt'factor :: CFloat,
c'friso_hash_cdt'threshold :: CUInt,
c'friso_hash_cdt'table :: Ptr C'hash_entry
} deriving (Eq,Show)
p'friso_hash_cdt'length p = plusPtr p 0
p'friso_hash_cdt'length :: Ptr (C'friso_hash_cdt) -> Ptr (CUInt)
p'friso_hash_cdt'size p = plusPtr p 4
p'friso_hash_cdt'size :: Ptr (C'friso_hash_cdt) -> Ptr (CUInt)
p'friso_hash_cdt'factor p = plusPtr p 8
p'friso_hash_cdt'factor :: Ptr (C'friso_hash_cdt) -> Ptr (CFloat)
p'friso_hash_cdt'threshold p = plusPtr p 12
p'friso_hash_cdt'threshold :: Ptr (C'friso_hash_cdt) -> Ptr (CUInt)
p'friso_hash_cdt'table p = plusPtr p 16
p'friso_hash_cdt'table :: Ptr (C'friso_hash_cdt) -> Ptr (Ptr C'hash_entry)
instance Storable C'friso_hash_cdt where
sizeOf _ = 24
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
return $ C'friso_hash_cdt v0 v1 v2 v3 v4
poke p (C'friso_hash_cdt v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
return ()
type C'friso_hash_t = C'friso_hash_cdt
foreign import ccall "new_hash_table" c'new_hash_table
:: IO (Ptr C'friso_hash_cdt)
foreign import ccall "&new_hash_table" p'new_hash_table
:: FunPtr (IO (Ptr C'friso_hash_cdt))
foreign import ccall "free_hash_table" c'free_hash_table
:: Ptr C'friso_hash_cdt -> C'fhash_callback_fn_t -> IO ()
foreign import ccall "&free_hash_table" p'free_hash_table
:: FunPtr (Ptr C'friso_hash_cdt -> C'fhash_callback_fn_t -> IO ())
foreign import ccall "hash_put_mapping" c'hash_put_mapping
:: Ptr C'friso_hash_cdt -> CString -> Ptr () -> IO ()
foreign import ccall "&hash_put_mapping" p'hash_put_mapping
:: FunPtr (Ptr C'friso_hash_cdt -> CString -> Ptr () -> IO ())
foreign import ccall "hash_exist_mapping" c'hash_exist_mapping
:: Ptr C'friso_hash_cdt -> CString -> IO CInt
foreign import ccall "&hash_exist_mapping" p'hash_exist_mapping
:: FunPtr (Ptr C'friso_hash_cdt -> CString -> IO CInt)
foreign import ccall "hash_get_value" c'hash_get_value
:: Ptr C'friso_hash_cdt -> CString -> IO (Ptr ())
foreign import ccall "&hash_get_value" p'hash_get_value
:: FunPtr (Ptr C'friso_hash_cdt -> CString -> IO (Ptr ()))
foreign import ccall "hash_remove_mapping" c'hash_remove_mapping
:: Ptr C'friso_hash_cdt -> CString -> IO (Ptr C'hash_entry)
foreign import ccall "&hash_remove_mapping" p'hash_remove_mapping
:: FunPtr (Ptr C'friso_hash_cdt -> CString -> IO (Ptr C'hash_entry))