{-# LINE 1 "Bindings/Groonga/Raw/Plugin.hsc" #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LINE 2 "Bindings/Groonga/Raw/Plugin.hsc" #-}

{-# LINE 3 "Bindings/Groonga/Raw/Plugin.hsc" #-}

{-# LINE 4 "Bindings/Groonga/Raw/Plugin.hsc" #-}
module Bindings.Groonga.Raw.Plugin 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

{-# LINE 7 "Bindings/Groonga/Raw/Plugin.hsc" #-}

import Bindings.Groonga.Raw
foreign import ccall "grn_plugin_impl_init" c'grn_plugin_impl_init
  :: Ptr C'_grn_ctx -> IO C'grn_rc
foreign import ccall "&grn_plugin_impl_init" p'grn_plugin_impl_init
  :: FunPtr (Ptr C'_grn_ctx -> IO C'grn_rc)

{-# LINE 10 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_impl_register" c'grn_plugin_impl_register
  :: Ptr C'_grn_ctx -> IO C'grn_rc
foreign import ccall "&grn_plugin_impl_register" p'grn_plugin_impl_register
  :: FunPtr (Ptr C'_grn_ctx -> IO C'grn_rc)

{-# LINE 11 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_impl_fin" c'grn_plugin_impl_fin
  :: Ptr C'_grn_ctx -> IO C'grn_rc
foreign import ccall "&grn_plugin_impl_fin" p'grn_plugin_impl_fin
  :: FunPtr (Ptr C'_grn_ctx -> IO C'grn_rc)

{-# LINE 12 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_malloc" c'grn_plugin_malloc
  :: Ptr C'_grn_ctx -> CSize -> CString -> CInt -> CString -> IO (Ptr ())
foreign import ccall "&grn_plugin_malloc" p'grn_plugin_malloc
  :: FunPtr (Ptr C'_grn_ctx -> CSize -> CString -> CInt -> CString -> IO (Ptr ()))

{-# LINE 13 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_realloc" c'grn_plugin_realloc
  :: Ptr C'_grn_ctx -> Ptr () -> CSize -> CString -> CInt -> CString -> IO (Ptr ())
foreign import ccall "&grn_plugin_realloc" p'grn_plugin_realloc
  :: FunPtr (Ptr C'_grn_ctx -> Ptr () -> CSize -> CString -> CInt -> CString -> IO (Ptr ()))

{-# LINE 14 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_free" c'grn_plugin_free
  :: Ptr C'_grn_ctx -> Ptr () -> CString -> CInt -> CString -> IO ()
foreign import ccall "&grn_plugin_free" p'grn_plugin_free
  :: FunPtr (Ptr C'_grn_ctx -> Ptr () -> CString -> CInt -> CString -> IO ())

{-# LINE 15 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_set_error" c'grn_plugin_set_error
  :: Ptr C'_grn_ctx -> C'grn_log_level -> C'grn_rc -> CString -> CInt -> CString -> CString -> IO ()
foreign import ccall "&grn_plugin_set_error" p'grn_plugin_set_error
  :: FunPtr (Ptr C'_grn_ctx -> C'grn_log_level -> C'grn_rc -> CString -> CInt -> CString -> CString -> IO ())

{-# LINE 16 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_backtrace" c'grn_plugin_backtrace
  :: Ptr C'_grn_ctx -> IO ()
foreign import ccall "&grn_plugin_backtrace" p'grn_plugin_backtrace
  :: FunPtr (Ptr C'_grn_ctx -> IO ())

{-# LINE 17 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_logtrace" c'grn_plugin_logtrace
  :: Ptr C'_grn_ctx -> C'grn_log_level -> IO ()
foreign import ccall "&grn_plugin_logtrace" p'grn_plugin_logtrace
  :: FunPtr (Ptr C'_grn_ctx -> C'grn_log_level -> IO ())

{-# LINE 18 "Bindings/Groonga/Raw/Plugin.hsc" #-}
{- typedef struct _grn_plugin_mutex grn_plugin_mutex; -}
data C'_grn_plugin_mutex = C'_grn_plugin_mutex

{-# LINE 20 "Bindings/Groonga/Raw/Plugin.hsc" #-}
type C'grn_plugin_mutex = C'_grn_plugin_mutex

{-# LINE 21 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_open" c'grn_plugin_mutex_open
  :: Ptr C'_grn_ctx -> IO (Ptr C'_grn_plugin_mutex)
foreign import ccall "&grn_plugin_mutex_open" p'grn_plugin_mutex_open
  :: FunPtr (Ptr C'_grn_ctx -> IO (Ptr C'_grn_plugin_mutex))

{-# LINE 22 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_create" c'grn_plugin_mutex_create
  :: Ptr C'_grn_ctx -> IO (Ptr C'_grn_plugin_mutex)
foreign import ccall "&grn_plugin_mutex_create" p'grn_plugin_mutex_create
  :: FunPtr (Ptr C'_grn_ctx -> IO (Ptr C'_grn_plugin_mutex))

{-# LINE 23 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_close" c'grn_plugin_mutex_close
  :: Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ()
foreign import ccall "&grn_plugin_mutex_close" p'grn_plugin_mutex_close
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ())

{-# LINE 24 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_destroy" c'grn_plugin_mutex_destroy
  :: Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ()
foreign import ccall "&grn_plugin_mutex_destroy" p'grn_plugin_mutex_destroy
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ())

{-# LINE 25 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_lock" c'grn_plugin_mutex_lock
  :: Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ()
foreign import ccall "&grn_plugin_mutex_lock" p'grn_plugin_mutex_lock
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ())

{-# LINE 26 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_mutex_unlock" c'grn_plugin_mutex_unlock
  :: Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ()
foreign import ccall "&grn_plugin_mutex_unlock" p'grn_plugin_mutex_unlock
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'_grn_plugin_mutex -> IO ())

{-# LINE 27 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_proc_alloc" c'grn_plugin_proc_alloc
  :: Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CUInt -> CUShort -> IO (Ptr C'_grn_obj)
foreign import ccall "&grn_plugin_proc_alloc" p'grn_plugin_proc_alloc
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CUInt -> CUShort -> IO (Ptr C'_grn_obj))

{-# LINE 28 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_proc_get_var" c'grn_plugin_proc_get_var
  :: Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CString -> CInt -> IO (Ptr C'_grn_obj)
foreign import ccall "&grn_plugin_proc_get_var" p'grn_plugin_proc_get_var
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CString -> CInt -> IO (Ptr C'_grn_obj))

{-# LINE 29 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_proc_get_var_by_offset" c'grn_plugin_proc_get_var_by_offset
  :: Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CUInt -> IO (Ptr C'_grn_obj)
foreign import ccall "&grn_plugin_proc_get_var_by_offset" p'grn_plugin_proc_get_var_by_offset
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'grn_user_data -> CUInt -> IO (Ptr C'_grn_obj))

{-# LINE 30 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_win32_base_dir" c'grn_plugin_win32_base_dir
  :: IO CString
foreign import ccall "&grn_plugin_win32_base_dir" p'grn_plugin_win32_base_dir
  :: FunPtr (IO CString)

{-# LINE 31 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_charlen" c'grn_plugin_charlen
  :: Ptr C'_grn_ctx -> CString -> CUInt -> C'grn_encoding -> IO CInt
foreign import ccall "&grn_plugin_charlen" p'grn_plugin_charlen
  :: FunPtr (Ptr C'_grn_ctx -> CString -> CUInt -> C'grn_encoding -> IO CInt)

{-# LINE 32 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_isspace" c'grn_plugin_isspace
  :: Ptr C'_grn_ctx -> CString -> CUInt -> C'grn_encoding -> IO CInt
foreign import ccall "&grn_plugin_isspace" p'grn_plugin_isspace
  :: FunPtr (Ptr C'_grn_ctx -> CString -> CUInt -> C'grn_encoding -> IO CInt)

{-# LINE 33 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_expr_var_init" c'grn_plugin_expr_var_init
  :: Ptr C'_grn_ctx -> Ptr C'grn_expr_var -> CString -> CInt -> IO C'grn_rc
foreign import ccall "&grn_plugin_expr_var_init" p'grn_plugin_expr_var_init
  :: FunPtr (Ptr C'_grn_ctx -> Ptr C'grn_expr_var -> CString -> CInt -> IO C'grn_rc)

{-# LINE 34 "Bindings/Groonga/Raw/Plugin.hsc" #-}
foreign import ccall "grn_plugin_command_create" c'grn_plugin_command_create
  :: Ptr C'_grn_ctx -> CString -> CInt -> C'grn_proc_func -> CUInt -> Ptr C'grn_expr_var -> IO (Ptr C'_grn_obj)
foreign import ccall "&grn_plugin_command_create" p'grn_plugin_command_create
  :: FunPtr (Ptr C'_grn_ctx -> CString -> CInt -> C'grn_proc_func -> CUInt -> Ptr C'grn_expr_var -> IO (Ptr C'_grn_obj))

{-# LINE 35 "Bindings/Groonga/Raw/Plugin.hsc" #-}