{-# LINE 1 "Bindings/Libgit2/Submodule.hsc" #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LINE 2 "Bindings/Libgit2/Submodule.hsc" #-}

{-# LINE 3 "Bindings/Libgit2/Submodule.hsc" #-}

{-# LINE 4 "Bindings/Libgit2/Submodule.hsc" #-}
module Bindings.Libgit2.Submodule 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/Libgit2/Submodule.hsc" #-}

import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Oid
{- typedef struct git_submodule git_submodule; -}
data C'git_submodule = C'git_submodule

{-# LINE 13 "Bindings/Libgit2/Submodule.hsc" #-}
{- typedef enum {
            GIT_SUBMODULE_UPDATE_DEFAULT = -1,
            GIT_SUBMODULE_UPDATE_CHECKOUT = 0,
            GIT_SUBMODULE_UPDATE_REBASE = 1,
            GIT_SUBMODULE_UPDATE_MERGE = 2,
            GIT_SUBMODULE_UPDATE_NONE = 3
        } git_submodule_update_t; -}
type C'git_submodule_update_t = CInt

{-# LINE 21 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_UPDATE_DEFAULT = -1
c'GIT_SUBMODULE_UPDATE_DEFAULT :: (Num a) => a

{-# LINE 22 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_UPDATE_CHECKOUT = 0
c'GIT_SUBMODULE_UPDATE_CHECKOUT :: (Num a) => a

{-# LINE 23 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_UPDATE_REBASE = 1
c'GIT_SUBMODULE_UPDATE_REBASE :: (Num a) => a

{-# LINE 24 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_UPDATE_MERGE = 2
c'GIT_SUBMODULE_UPDATE_MERGE :: (Num a) => a

{-# LINE 25 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_UPDATE_NONE = 3
c'GIT_SUBMODULE_UPDATE_NONE :: (Num a) => a

{-# LINE 26 "Bindings/Libgit2/Submodule.hsc" #-}
{- typedef enum {
            GIT_SUBMODULE_IGNORE_DEFAULT = -1,
            GIT_SUBMODULE_IGNORE_NONE = 0,
            GIT_SUBMODULE_IGNORE_UNTRACKED = 1,
            GIT_SUBMODULE_IGNORE_DIRTY = 2,
            GIT_SUBMODULE_IGNORE_ALL = 3
        } git_submodule_ignore_t; -}
type C'git_submodule_ignore_t = CInt

{-# LINE 34 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_IGNORE_DEFAULT = -1
c'GIT_SUBMODULE_IGNORE_DEFAULT :: (Num a) => a

{-# LINE 35 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_IGNORE_NONE = 0
c'GIT_SUBMODULE_IGNORE_NONE :: (Num a) => a

{-# LINE 36 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_IGNORE_UNTRACKED = 1
c'GIT_SUBMODULE_IGNORE_UNTRACKED :: (Num a) => a

{-# LINE 37 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_IGNORE_DIRTY = 2
c'GIT_SUBMODULE_IGNORE_DIRTY :: (Num a) => a

{-# LINE 38 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_IGNORE_ALL = 3
c'GIT_SUBMODULE_IGNORE_ALL :: (Num a) => a

{-# LINE 39 "Bindings/Libgit2/Submodule.hsc" #-}
{- typedef enum {
            GIT_SUBMODULE_STATUS_IN_HEAD = 1u << 0,
            GIT_SUBMODULE_STATUS_IN_INDEX = 1u << 1,
            GIT_SUBMODULE_STATUS_IN_CONFIG = 1u << 2,
            GIT_SUBMODULE_STATUS_IN_WD = 1u << 3,
            GIT_SUBMODULE_STATUS_INDEX_ADDED = 1u << 4,
            GIT_SUBMODULE_STATUS_INDEX_DELETED = 1u << 5,
            GIT_SUBMODULE_STATUS_INDEX_MODIFIED = 1u << 6,
            GIT_SUBMODULE_STATUS_WD_UNINITIALIZED = 1u << 7,
            GIT_SUBMODULE_STATUS_WD_ADDED = 1u << 8,
            GIT_SUBMODULE_STATUS_WD_DELETED = 1u << 9,
            GIT_SUBMODULE_STATUS_WD_MODIFIED = 1u << 10,
            GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED = 1u << 11,
            GIT_SUBMODULE_STATUS_WD_WD_MODIFIED = 1u << 12,
            GIT_SUBMODULE_STATUS_WD_UNTRACKED = 1u << 13
        } git_submodule_status_t; -}
type C'git_submodule_status_t = CUInt

{-# LINE 56 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_IN_HEAD = 1
c'GIT_SUBMODULE_STATUS_IN_HEAD :: (Num a) => a

{-# LINE 57 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_IN_INDEX = 2
c'GIT_SUBMODULE_STATUS_IN_INDEX :: (Num a) => a

{-# LINE 58 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_IN_CONFIG = 4
c'GIT_SUBMODULE_STATUS_IN_CONFIG :: (Num a) => a

{-# LINE 59 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_IN_WD = 8
c'GIT_SUBMODULE_STATUS_IN_WD :: (Num a) => a

{-# LINE 60 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_INDEX_ADDED = 16
c'GIT_SUBMODULE_STATUS_INDEX_ADDED :: (Num a) => a

{-# LINE 61 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_INDEX_DELETED = 32
c'GIT_SUBMODULE_STATUS_INDEX_DELETED :: (Num a) => a

{-# LINE 62 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_INDEX_MODIFIED = 64
c'GIT_SUBMODULE_STATUS_INDEX_MODIFIED :: (Num a) => a

{-# LINE 63 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_UNINITIALIZED = 128
c'GIT_SUBMODULE_STATUS_WD_UNINITIALIZED :: (Num a) => a

{-# LINE 64 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_ADDED = 256
c'GIT_SUBMODULE_STATUS_WD_ADDED :: (Num a) => a

{-# LINE 65 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_DELETED = 512
c'GIT_SUBMODULE_STATUS_WD_DELETED :: (Num a) => a

{-# LINE 66 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_MODIFIED = 1024
c'GIT_SUBMODULE_STATUS_WD_MODIFIED :: (Num a) => a

{-# LINE 67 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED = 2048
c'GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED :: (Num a) => a

{-# LINE 68 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_WD_MODIFIED = 4096
c'GIT_SUBMODULE_STATUS_WD_WD_MODIFIED :: (Num a) => a

{-# LINE 69 "Bindings/Libgit2/Submodule.hsc" #-}
c'GIT_SUBMODULE_STATUS_WD_UNTRACKED = 8192
c'GIT_SUBMODULE_STATUS_WD_UNTRACKED :: (Num a) => a

{-# LINE 70 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_lookup" c'git_submodule_lookup
  :: Ptr (Ptr C'git_submodule) -> Ptr C'git_repository -> CString -> IO (CInt)
foreign import ccall "&git_submodule_lookup" p'git_submodule_lookup
  :: FunPtr (Ptr (Ptr C'git_submodule) -> Ptr C'git_repository -> CString -> IO (CInt))

{-# LINE 71 "Bindings/Libgit2/Submodule.hsc" #-}
type C'git_submodule_foreach_callback = FunPtr (Ptr (C'git_submodule) -> CString -> Ptr () -> IO CInt)
foreign import ccall "wrapper" mk'git_submodule_foreach_callback
  :: (Ptr (C'git_submodule) -> CString -> Ptr () -> IO CInt) -> IO C'git_submodule_foreach_callback
foreign import ccall "dynamic" mK'git_submodule_foreach_callback
  :: C'git_submodule_foreach_callback -> (Ptr (C'git_submodule) -> CString -> Ptr () -> IO CInt)

{-# LINE 72 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_foreach" c'git_submodule_foreach
  :: Ptr C'git_repository -> C'git_submodule_foreach_callback -> Ptr () -> IO (CInt)
foreign import ccall "&git_submodule_foreach" p'git_submodule_foreach
  :: FunPtr (Ptr C'git_repository -> C'git_submodule_foreach_callback -> Ptr () -> IO (CInt))

{-# LINE 73 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_add_setup" c'git_submodule_add_setup
  :: Ptr (Ptr C'git_submodule) -> Ptr C'git_repository -> CString -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_submodule_add_setup" p'git_submodule_add_setup
  :: FunPtr (Ptr (Ptr C'git_submodule) -> Ptr C'git_repository -> CString -> CString -> CInt -> IO (CInt))

{-# LINE 74 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_add_finalize" c'git_submodule_add_finalize
  :: Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_add_finalize" p'git_submodule_add_finalize
  :: FunPtr (Ptr C'git_submodule -> IO (CInt))

{-# LINE 75 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_add_to_index" c'git_submodule_add_to_index
  :: Ptr C'git_submodule -> CInt -> IO (CInt)
foreign import ccall "&git_submodule_add_to_index" p'git_submodule_add_to_index
  :: FunPtr (Ptr C'git_submodule -> CInt -> IO (CInt))

{-# LINE 76 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_save" c'git_submodule_save
  :: Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_save" p'git_submodule_save
  :: FunPtr (Ptr C'git_submodule -> IO (CInt))

{-# LINE 77 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_owner" c'git_submodule_owner
  :: Ptr C'git_submodule -> IO (Ptr C'git_repository)
foreign import ccall "&git_submodule_owner" p'git_submodule_owner
  :: FunPtr (Ptr C'git_submodule -> IO (Ptr C'git_repository))

{-# LINE 78 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_name" c'git_submodule_name
  :: Ptr C'git_submodule -> IO (CString)
foreign import ccall "&git_submodule_name" p'git_submodule_name
  :: FunPtr (Ptr C'git_submodule -> IO (CString))

{-# LINE 79 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_path" c'git_submodule_path
  :: Ptr C'git_submodule -> IO (CString)
foreign import ccall "&git_submodule_path" p'git_submodule_path
  :: FunPtr (Ptr C'git_submodule -> IO (CString))

{-# LINE 80 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_url" c'git_submodule_url
  :: Ptr C'git_submodule -> IO (CString)
foreign import ccall "&git_submodule_url" p'git_submodule_url
  :: FunPtr (Ptr C'git_submodule -> IO (CString))

{-# LINE 81 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_set_url" c'git_submodule_set_url
  :: Ptr C'git_submodule -> CString -> IO (CInt)
foreign import ccall "&git_submodule_set_url" p'git_submodule_set_url
  :: FunPtr (Ptr C'git_submodule -> CString -> IO (CInt))

{-# LINE 82 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_index_id" c'git_submodule_index_id
  :: Ptr C'git_submodule -> IO (Ptr C'git_oid)
foreign import ccall "&git_submodule_index_id" p'git_submodule_index_id
  :: FunPtr (Ptr C'git_submodule -> IO (Ptr C'git_oid))

{-# LINE 83 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_head_id" c'git_submodule_head_id
  :: Ptr C'git_submodule -> IO (Ptr C'git_oid)
foreign import ccall "&git_submodule_head_id" p'git_submodule_head_id
  :: FunPtr (Ptr C'git_submodule -> IO (Ptr C'git_oid))

{-# LINE 84 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_wd_id" c'git_submodule_wd_id
  :: Ptr C'git_submodule -> IO (Ptr C'git_oid)
foreign import ccall "&git_submodule_wd_id" p'git_submodule_wd_id
  :: FunPtr (Ptr C'git_submodule -> IO (Ptr C'git_oid))

{-# LINE 85 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_ignore" c'git_submodule_ignore
  :: Ptr C'git_submodule -> IO (C'git_submodule_ignore_t)
foreign import ccall "&git_submodule_ignore" p'git_submodule_ignore
  :: FunPtr (Ptr C'git_submodule -> IO (C'git_submodule_ignore_t))

{-# LINE 86 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_set_ignore" c'git_submodule_set_ignore
  :: Ptr C'git_submodule -> C'git_submodule_ignore_t -> IO (C'git_submodule_ignore_t)
foreign import ccall "&git_submodule_set_ignore" p'git_submodule_set_ignore
  :: FunPtr (Ptr C'git_submodule -> C'git_submodule_ignore_t -> IO (C'git_submodule_ignore_t))

{-# LINE 87 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_update" c'git_submodule_update
  :: Ptr C'git_submodule -> IO (C'git_submodule_update_t)
foreign import ccall "&git_submodule_update" p'git_submodule_update
  :: FunPtr (Ptr C'git_submodule -> IO (C'git_submodule_update_t))

{-# LINE 88 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_set_update" c'git_submodule_set_update
  :: Ptr C'git_submodule -> C'git_submodule_update_t -> IO (C'git_submodule_update_t)
foreign import ccall "&git_submodule_set_update" p'git_submodule_set_update
  :: FunPtr (Ptr C'git_submodule -> C'git_submodule_update_t -> IO (C'git_submodule_update_t))

{-# LINE 89 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_fetch_recurse_submodules" c'git_submodule_fetch_recurse_submodules
  :: Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_fetch_recurse_submodules" p'git_submodule_fetch_recurse_submodules
  :: FunPtr (Ptr C'git_submodule -> IO (CInt))

{-# LINE 90 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_set_fetch_recurse_submodules" c'git_submodule_set_fetch_recurse_submodules
  :: Ptr C'git_submodule -> CInt -> IO (CInt)
foreign import ccall "&git_submodule_set_fetch_recurse_submodules" p'git_submodule_set_fetch_recurse_submodules
  :: FunPtr (Ptr C'git_submodule -> CInt -> IO (CInt))

{-# LINE 91 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_init" c'git_submodule_init
  :: Ptr C'git_submodule -> CInt -> IO (CInt)
foreign import ccall "&git_submodule_init" p'git_submodule_init
  :: FunPtr (Ptr C'git_submodule -> CInt -> IO (CInt))

{-# LINE 92 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_sync" c'git_submodule_sync
  :: Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_sync" p'git_submodule_sync
  :: FunPtr (Ptr C'git_submodule -> IO (CInt))

{-# LINE 93 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_open" c'git_submodule_open
  :: Ptr (Ptr C'git_repository) -> Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_open" p'git_submodule_open
  :: FunPtr (Ptr (Ptr C'git_repository) -> Ptr C'git_submodule -> IO (CInt))

{-# LINE 94 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_reload" c'git_submodule_reload
  :: Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_reload" p'git_submodule_reload
  :: FunPtr (Ptr C'git_submodule -> IO (CInt))

{-# LINE 95 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_reload_all" c'git_submodule_reload_all
  :: Ptr C'git_repository -> IO (CInt)
foreign import ccall "&git_submodule_reload_all" p'git_submodule_reload_all
  :: FunPtr (Ptr C'git_repository -> IO (CInt))

{-# LINE 96 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_status" c'git_submodule_status
  :: Ptr CUInt -> Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_status" p'git_submodule_status
  :: FunPtr (Ptr CUInt -> Ptr C'git_submodule -> IO (CInt))

{-# LINE 97 "Bindings/Libgit2/Submodule.hsc" #-}
foreign import ccall "git_submodule_location" c'git_submodule_location
  :: Ptr CUInt -> Ptr C'git_submodule -> IO (CInt)
foreign import ccall "&git_submodule_location" p'git_submodule_location
  :: FunPtr (Ptr CUInt -> Ptr C'git_submodule -> IO (CInt))

{-# LINE 98 "Bindings/Libgit2/Submodule.hsc" #-}