{-# INCLUDE <bindings.macros.h> #-}
{-# INCLUDE <string.h> #-}
{-# LINE 1 "src/Bindings/C/String.hsc" #-}

{-# LINE 2 "src/Bindings/C/String.hsc" #-}

{-# LINE 3 "src/Bindings/C/String.hsc" #-}

-- | <http://www.opengroup.org/onlinepubs/9699919799/basedefs/string.h.html>

module Bindings.C.String where
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.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/C/String.hsc" #-}

foreign import ccall "memchr" c'memchr
  :: Ptr () -> CInt -> CSize -> IO (Ptr ())
foreign import ccall "&memchr" p'memchr
  :: FunPtr (Ptr () -> CInt -> CSize -> IO (Ptr ()))

{-# LINE 10 "src/Bindings/C/String.hsc" #-}
foreign import ccall "memcmp" c'memcmp
  :: Ptr () -> Ptr () -> CSize -> IO CInt
foreign import ccall "&memcmp" p'memcmp
  :: FunPtr (Ptr () -> Ptr () -> CSize -> IO CInt)

{-# LINE 11 "src/Bindings/C/String.hsc" #-}
foreign import ccall "memcpy" c'memcpy
  :: Ptr () -> Ptr () -> CSize -> IO (Ptr ())
foreign import ccall "&memcpy" p'memcpy
  :: FunPtr (Ptr () -> Ptr () -> CSize -> IO (Ptr ()))

{-# LINE 12 "src/Bindings/C/String.hsc" #-}
foreign import ccall "memmove" c'memmove
  :: Ptr () -> Ptr () -> CSize -> IO (Ptr ())
foreign import ccall "&memmove" p'memmove
  :: FunPtr (Ptr () -> Ptr () -> CSize -> IO (Ptr ()))

{-# LINE 13 "src/Bindings/C/String.hsc" #-}
foreign import ccall "memset" c'memset
  :: Ptr () -> CInt -> CSize -> IO (Ptr ())
foreign import ccall "&memset" p'memset
  :: FunPtr (Ptr () -> CInt -> CSize -> IO (Ptr ()))

{-# LINE 14 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strcat" c'strcat
  :: CString -> CString -> IO CString
foreign import ccall "&strcat" p'strcat
  :: FunPtr (CString -> CString -> IO CString)

{-# LINE 15 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strchr" c'strchr
  :: CString -> CInt -> IO CString
foreign import ccall "&strchr" p'strchr
  :: FunPtr (CString -> CInt -> IO CString)

{-# LINE 16 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strcmp" c'strcmp
  :: CString -> CString -> IO CInt
foreign import ccall "&strcmp" p'strcmp
  :: FunPtr (CString -> CString -> IO CInt)

{-# LINE 17 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strcoll" c'strcoll
  :: CString -> CString -> IO CInt
foreign import ccall "&strcoll" p'strcoll
  :: FunPtr (CString -> CString -> IO CInt)

{-# LINE 18 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strcpy" c'strcpy
  :: CString -> CString -> IO CString
foreign import ccall "&strcpy" p'strcpy
  :: FunPtr (CString -> CString -> IO CString)

{-# LINE 19 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strcspn" c'strcspn
  :: CString -> CString -> IO CSize
foreign import ccall "&strcspn" p'strcspn
  :: FunPtr (CString -> CString -> IO CSize)

{-# LINE 20 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strerror" c'strerror
  :: CInt -> IO CString
foreign import ccall "&strerror" p'strerror
  :: FunPtr (CInt -> IO CString)

{-# LINE 21 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strlen" c'strlen
  :: CString -> IO CSize
foreign import ccall "&strlen" p'strlen
  :: FunPtr (CString -> IO CSize)

{-# LINE 22 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strncat" c'strncat
  :: CString -> CString -> CSize -> IO CString
foreign import ccall "&strncat" p'strncat
  :: FunPtr (CString -> CString -> CSize -> IO CString)

{-# LINE 23 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strncmp" c'strncmp
  :: CString -> CString -> CSize -> IO CInt
foreign import ccall "&strncmp" p'strncmp
  :: FunPtr (CString -> CString -> CSize -> IO CInt)

{-# LINE 24 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strncpy" c'strncpy
  :: CString -> CString -> CSize -> IO CString
foreign import ccall "&strncpy" p'strncpy
  :: FunPtr (CString -> CString -> CSize -> IO CString)

{-# LINE 25 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strpbrk" c'strpbrk
  :: CString -> CString -> IO CString
foreign import ccall "&strpbrk" p'strpbrk
  :: FunPtr (CString -> CString -> IO CString)

{-# LINE 26 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strrchr" c'strrchr
  :: CString -> CInt -> IO CString
foreign import ccall "&strrchr" p'strrchr
  :: FunPtr (CString -> CInt -> IO CString)

{-# LINE 27 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strspn" c'strspn
  :: CString -> CString -> IO CSize
foreign import ccall "&strspn" p'strspn
  :: FunPtr (CString -> CString -> IO CSize)

{-# LINE 28 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strstr" c'strstr
  :: CString -> CString -> IO CString
foreign import ccall "&strstr" p'strstr
  :: FunPtr (CString -> CString -> IO CString)

{-# LINE 29 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strtok" c'strtok
  :: CString -> CString -> IO CString
foreign import ccall "&strtok" p'strtok
  :: FunPtr (CString -> CString -> IO CString)

{-# LINE 30 "src/Bindings/C/String.hsc" #-}
foreign import ccall "strxfrm" c'strxfrm
  :: CString -> CString -> CSize -> IO CSize
foreign import ccall "&strxfrm" p'strxfrm
  :: FunPtr (CString -> CString -> CSize -> IO CSize)

{-# LINE 31 "src/Bindings/C/String.hsc" #-}