-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}
-- | This module corresponds to @archive_entry.h@
--
-- Functions in this module are stateful and hence take place in the 'IO'
-- monad.
module Codec.Archive.Foreign.ArchiveEntry ( -- * Direct bindings (entry)
                                            archiveEntryClear
                                          , archiveEntryClone
                                          , archiveEntryNew
                                          , archiveEntryFree
                                          , archiveEntryNew2
                                          , archiveEntryAtime
                                          , archiveEntryAtimeNsec
                                          , archiveEntryAtimeIsSet
                                          , archiveEntryBirthtime
                                          , archiveEntryBirthtimeNsec
                                          , archiveEntryBirthtimeIsSet
                                          , archiveEntryCtime
                                          , archiveEntryCtimeNsec
                                          , archiveEntryCtimeIsSet
                                          , archiveEntryDev
                                          , archiveEntryDevIsSet
                                          , archiveEntryDevminor
                                          , archiveEntryDevmajor
                                          , archiveEntryFflags
                                          , archiveEntryFflagsText
                                          , archiveEntryFiletype
                                          , archiveEntryGid
                                          , archiveEntryGname
                                          , archiveEntryGnameUtf8
                                          , archiveEntryGnameW
                                          , archiveEntryHardlink
                                          , archiveEntryHardlinkUtf8
                                          , archiveEntryHardlinkW
                                          , archiveEntryIno
                                          , archiveEntryIno64
                                          , archiveEntryInoIsSet
                                          , archiveEntryMode
                                          , archiveEntryMtime
                                          , archiveEntryMtimeNsec
                                          , archiveEntryMtimeIsSet
                                          , archiveEntryNlink
                                          , archiveEntryPathname
                                          , archiveEntryPathnameUtf8
                                          , archiveEntryPathnameW
                                          , archiveEntryPerm
                                          , archiveEntryRdev
                                          , archiveEntryRdevmajor
                                          , archiveEntryRdevminor
                                          , archiveEntrySourcepath
                                          , archiveEntrySourcepathW
                                          , archiveEntrySize
                                          , archiveEntrySizeIsSet
                                          , archiveEntryStrmode
                                          , archiveEntrySymlink
                                          , archiveEntrySymlinkType
                                          , archiveEntrySymlinkW
                                          , archiveEntrySymlinkUtf8
                                          , archiveEntryUid
                                          , archiveEntryUname
                                          , archiveEntryUnameUtf8
                                          , archiveEntryUnameW
                                          , archiveEntryIsDataEncrypted
                                          , archiveEntryIsMetadataEncrypted
                                          , archiveEntryIsEncrypted
                                          , archiveEntrySetAtime
                                          , archiveEntryUnsetAtime
                                          , archiveEntrySetBirthtime
                                          , archiveEntryUnsetBirthtime
                                          , archiveEntrySetCtime
                                          , archiveEntryUnsetCtime
                                          , archiveEntrySetDev
                                          , archiveEntrySetDevminor
                                          , archiveEntrySetDevmajor
                                          , archiveEntrySetFflags
                                          , archiveEntryCopyFflagsText
                                          , archiveEntryCopyFflagsTextW
                                          , archiveEntrySetFiletype
                                          , archiveEntrySetGid
                                          , archiveEntrySetGname
                                          , archiveEntrySetGnameUtf8
                                          , archiveEntryCopyGname
                                          , archiveEntryCopyGnameW
                                          , archiveEntryUpdateGnameUtf8
                                          , archiveEntrySetHardlink
                                          , archiveEntrySetHardlinkUtf8
                                          , archiveEntryCopyHardlink
                                          , archiveEntryCopyHardlinkW
                                          , archiveEntryUpdateHardlinkUtf8
                                          , archiveEntrySetIno
                                          , archiveEntrySetIno64
                                          , archiveEntrySetLink
                                          , archiveEntrySetLinkUtf8
                                          , archiveEntryCopyLink
                                          , archiveEntryCopyLinkW
                                          , archiveEntryUpdateLinkUtf8
                                          , archiveEntrySetMode
                                          , archiveEntrySetMtime
                                          , archiveEntryUnsetMtime
                                          , archiveEntrySetNlink
                                          , archiveEntrySetPathname
                                          , archiveEntrySetPathnameUtf8
                                          , archiveEntryCopyPathname
                                          , archiveEntryCopyPathnameW
                                          , archiveEntryUpdatePathnameUtf8
                                          , archiveEntrySetPerm
                                          , archiveEntrySetRdev
                                          , archiveEntrySetRdevmajor
                                          , archiveEntrySetRdevminor
                                          , archiveEntrySetSize
                                          , archiveEntryUnsetSize
                                          , archiveEntryCopySourcepath
                                          , archiveEntryCopySourcepathW
                                          , archiveEntrySetSymlink
                                          , archiveEntrySetSymlinkType
                                          , archiveEntrySetSymlinkUtf8
                                          , archiveEntryCopySymlink
                                          , archiveEntryCopySymlinkW
                                          , archiveEntryUpdateSymlinkUtf8
                                          , archiveEntrySetUid
                                          , archiveEntrySetUname
                                          , archiveEntrySetUnameUtf8
                                          , archiveEntryCopyUname
                                          , archiveEntryCopyUnameW
                                          , archiveEntryUpdateUnameUtf8
                                          , archiveEntryStat
                                          , archiveEntryCopyStat
                                          , archiveEntryMacMetadata
                                          , archiveEntryCopyMacMetadata
                                          , archiveEntryAclClear
                                          , archiveEntryAclNext
                                          -- , archiveEntryAclNextW
                                          , archiveEntryAclReset
                                          , archiveEntryAclToText
                                          , archiveEntryAclToTextW
                                          , archiveEntryAclFromText
                                          , archiveEntryAclFromTextW
                                          , archiveEntryAclTypes
                                          , archiveEntryAclCount
                                          , archiveEntryAclAddEntry
                                          , archiveEntryAclAddEntryW
                                          -- * Xattr functions
                                          , archiveEntryXattrClear
                                          , archiveEntryXattrAddEntry
                                          , archiveEntryXattrCount
                                          , archiveEntryXattrReset
                                          , archiveEntryXattrNext
                                          -- * For sparse archives
                                          , archiveEntrySparseClear
                                          , archiveEntrySparseAddEntry
                                          , archiveEntrySparseCount
                                          , archiveEntrySparseReset
                                          , archiveEntrySparseNext
                                          -- * Link resolver
                                          , archiveEntryLinkresolverNew
                                          , archiveEntryLinkresolverSetStrategy
                                          , archiveEntryLinkresolverFree
                                          , archiveEntryLinkify
                                          , archiveEntryPartialLinks
                                          -- * ACL macros
                                          , archiveEntryACLExecute
                                          , archiveEntryACLWrite
                                          , archiveEntryACLRead
                                          , archiveEntryACLReadData
                                          , archiveEntryACLListData
                                          , archiveEntryACLWriteData
                                          , archiveEntryACLAddFile
                                          , archiveEntryACLAppendData
                                          , archiveEntryACLAddSubdirectory
                                          , archiveEntryACLReadNamedAttrs
                                          , archiveEntryACLWriteNamedAttrs
                                          , archiveEntryACLDeleteChild
                                          , archiveEntryACLReadAttributes
                                          , archiveEntryACLWriteAttributes
                                          , archiveEntryACLDelete
                                          , archiveEntryACLReadACL
                                          , archiveEntryACLWriteACL
                                          , archiveEntryACLWriteOwner
                                          , archiveEntryACLSynchronize
                                          , archiveEntryACLEntryFileInherit
                                          , archiveEntryACLEntryDirectoryInherit
                                          , archiveEntryACLEntryNoPropagateInherit
                                          , archiveEntryACLEntryInheritOnly
                                          , archiveEntryACLEntrySuccessfulAccess
                                          , archiveEntryACLEntryFailedAccess
                                          , archiveEntryACLTypeAccess
                                          , archiveEntryACLTypeDefault
                                          , archiveEntryACLTypeAllow
                                          , archiveEntryACLTypeDeny
                                          , archiveEntryACLTypeAudit
                                          , archiveEntryACLTypeAlarm
                                          , archiveEntryACLUser
                                          , archiveEntryACLUserObj
                                          , archiveEntryACLGroup
                                          , archiveEntryACLGroupObj
                                          , archiveEntryACLMask
                                          , archiveEntryACLOther
                                          , archiveEntryACLEveryone
                                          , archiveEntryACLStyleExtraID
                                          , archiveEntryACLStyleMarkDefault
                                          , archiveEntryACLEntryInherited
                                          , archiveEntryACLStyleCompact
                                          , archiveEntryACLStyleSeparatorComma
                                          , archiveEntryACLStyleSolaris
                                          -- * Abstract types
                                          , ArchiveEntry
                                          , Stat
                                          , LinkResolver
                                          -- * Lower-level API types
                                          , FileType (..)
                                          , EntryACL
                                          , Symlink (..)
                                          -- * Type synonyms
                                          , ArchiveEntryPtr
                                          , LinkResolverPtr
                                          ) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.ForeignPtr as C2HSImp
import qualified Foreign.Marshal.Utils as C2HSImp
import qualified Foreign.Ptr as C2HSImp



import Codec.Archive.Foreign.Archive
{-# LINE 217 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


import Codec.Archive.Foreign.ArchiveEntry.Macros
import Codec.Archive.Types
import Data.Coerce (coerce)
import Foreign.C.String
import Foreign.C.Types
import Foreign.Ptr (Ptr, castPtr)
import System.PosixCompat.Types (CMode (..), CDev (..))

-- TODO: higher level archiveEntryXattrList?



-- TODO: foreign ptr
type LinkResolverPtr = C2HSImp.Ptr (LinkResolver)
{-# LINE 232 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}



{-# LINE 234 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 235 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 236 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 237 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 238 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 239 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 240 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


{-# LINE 241 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


ft :: CMode -> Maybe FileType
ft :: CMode -> Maybe FileType
ft CMode
0 = Maybe FileType
forall a. Maybe a
Nothing
ft CMode
i = FileType -> Maybe FileType
forall a. a -> Maybe a
Just (FileType -> Maybe FileType) -> FileType -> Maybe FileType
forall a b. (a -> b) -> a -> b
$ Int -> FileType
forall a. Enum a => Int -> a
toEnum (CMode -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CMode
i)

uft :: Maybe FileType -> CUInt
uft :: Maybe FileType -> CUInt
uft Maybe FileType
Nothing    = CUInt
0
uft (Just FileType
ft') = Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (FileType -> Int
forall a. Enum a => a -> Int
fromEnum FileType
ft')

archiveEntryClear :: (ArchiveEntryPtr) -> IO ((ArchiveEntryPtr))
archiveEntryClear :: ArchiveEntryPtr -> IO ArchiveEntryPtr
archiveEntryClear ArchiveEntryPtr
a1 =
  ArchiveEntryPtr
-> (Ptr ArchiveEntry -> IO ArchiveEntryPtr) -> IO ArchiveEntryPtr
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
C2HSImp.withForeignPtr ArchiveEntryPtr
a1 ((Ptr ArchiveEntry -> IO ArchiveEntryPtr) -> IO ArchiveEntryPtr)
-> (Ptr ArchiveEntry -> IO ArchiveEntryPtr) -> IO ArchiveEntryPtr
forall a b. (a -> b) -> a -> b
$ \Ptr ArchiveEntry
a1' -> 
  Ptr ArchiveEntry -> IO (Ptr ArchiveEntry)
archiveEntryClear'_ a1' IO (Ptr ArchiveEntry)
-> (Ptr ArchiveEntry -> IO ArchiveEntryPtr) -> IO ArchiveEntryPtr
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \Ptr ArchiveEntry
res ->
  Ptr ArchiveEntry -> IO ArchiveEntryPtr
forall a. Ptr a -> IO (ForeignPtr a)
C2HSImp.newForeignPtr_ Ptr ArchiveEntry
res IO ArchiveEntryPtr
-> (ArchiveEntryPtr -> IO ArchiveEntryPtr) -> IO ArchiveEntryPtr
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \ArchiveEntryPtr
res' ->
  ArchiveEntryPtr -> IO ArchiveEntryPtr
forall (m :: * -> *) a. Monad m => a -> m a
return (ArchiveEntryPtr
res')

{-# LINE 251 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryClone :: (ArchiveEntryPtr) -> IO ((ArchiveEntryPtr))
archiveEntryClone a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryClone'_ a1' >>= \res ->
  C2HSImp.newForeignPtr_ res >>= \res' ->
  return (res')

{-# LINE 252 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryNew :: IO ((ArchiveEntryPtr))
archiveEntryNew =
  archiveEntryNew'_ >>= \res ->
  C2HSImp.newForeignPtr_ res >>= \res' ->
  return (res')

{-# LINE 253 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryNew2 :: (ArchivePtr) -> IO ((ArchiveEntryPtr))
archiveEntryNew2 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryNew2'_ a1' >>= \res ->
  C2HSImp.newForeignPtr_ res >>= \res' ->
  return (res')

{-# LINE 254 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAtime :: (ArchiveEntryPtr) -> IO ((CTime))
archiveEntryAtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryAtime'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 255 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAtimeNsec :: (ArchiveEntryPtr) -> IO ((CLong))
archiveEntryAtimeNsec a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryAtimeNsec'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 256 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryBirthtime :: (ArchiveEntryPtr) -> IO ((CTime))
archiveEntryBirthtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryBirthtime'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 257 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryBirthtimeNsec :: (ArchiveEntryPtr) -> IO ((CLong))
archiveEntryBirthtimeNsec a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryBirthtimeNsec'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 258 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCtime :: (ArchiveEntryPtr) -> IO ((CTime))
archiveEntryCtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryCtime'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 259 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCtimeNsec :: (ArchiveEntryPtr) -> IO ((CLong))
archiveEntryCtimeNsec a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryCtimeNsec'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 260 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryDev :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryDev a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryDev'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 261 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryDevminor :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryDevminor a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryDevminor'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 262 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryDevmajor :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryDevmajor a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryDevmajor'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 263 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryFflags :: (ArchiveEntryPtr) -> (CULong) -> (CULong) -> IO ()
archiveEntryFflags a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (C2HSImp.with . fromIntegral) a2 $ \a2' -> 
  (C2HSImp.with . fromIntegral) a3 $ \a3' -> 
  archiveEntryFflags'_ a1' a2' a3' >>
  return ()

{-# LINE 264 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryFflagsText :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryFflagsText a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryFflagsText'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 265 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

-- | Here a 'Nothing' means a hardlink
archiveEntryFiletype :: (ArchiveEntryPtr) -> IO ((Maybe FileType))
archiveEntryFiletype a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryFiletype'_ a1' >>= \res ->
  let {res' = ft res} in
  return (res')

{-# LINE 267 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryGid :: (ArchiveEntryPtr) -> IO ((LaInt64))
archiveEntryGid a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryGid'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 268 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryGname :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryGname a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryGname'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 269 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryGnameUtf8 :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryGnameUtf8 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryGnameUtf8'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 270 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryGnameW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntryGnameW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryGnameW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 271 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryHardlink :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryHardlink a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryHardlink'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 272 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryHardlinkUtf8 :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryHardlinkUtf8 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryHardlinkUtf8'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 273 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryHardlinkW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntryHardlinkW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryHardlinkW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 274 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryIno :: (ArchiveEntryPtr) -> IO ((LaInt64))
archiveEntryIno a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryIno'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 275 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryIno64 :: (ArchiveEntryPtr) -> IO ((LaInt64))
archiveEntryIno64 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryIno64'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 276 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryMode :: (ArchiveEntryPtr) -> IO ((CMode))
archiveEntryMode a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryMode'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 277 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryMtime :: (ArchiveEntryPtr) -> IO ((CTime))
archiveEntryMtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryMtime'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 278 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryMtimeNsec :: (ArchiveEntryPtr) -> IO ((CLong))
archiveEntryMtimeNsec a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryMtimeNsec'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 279 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryNlink :: (ArchiveEntryPtr) -> IO ((CUInt))
archiveEntryNlink a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryNlink'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 280 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryPathname :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryPathname a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryPathname'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 281 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryPathnameUtf8 :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryPathnameUtf8 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryPathnameUtf8'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 282 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryPathnameW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntryPathnameW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryPathnameW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 283 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryPerm :: (ArchiveEntryPtr) -> IO ((CMode))
archiveEntryPerm a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryPerm'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 284 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryRdev :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryRdev a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryRdev'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 285 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryRdevmajor :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryRdevmajor a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryRdevmajor'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 286 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryRdevminor :: (ArchiveEntryPtr) -> IO ((CDev))
archiveEntryRdevminor a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryRdevminor'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 287 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySourcepath :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntrySourcepath a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySourcepath'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 288 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySourcepathW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntrySourcepathW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySourcepathW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 289 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySize :: (ArchiveEntryPtr) -> IO ((LaInt64))
archiveEntrySize a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySize'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 290 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryStrmode :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryStrmode a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryStrmode'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 291 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySymlink :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntrySymlink a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySymlink'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 292 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

-- | @since 2.1.2.0
archiveEntrySymlinkType :: (ArchiveEntryPtr) -> IO ((Symlink))
archiveEntrySymlinkType a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySymlinkType'_ a1' >>= \res ->
  let {res' = (toEnum . fromIntegral) res} in
  return (res')

{-# LINE 294 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySymlinkW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntrySymlinkW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySymlinkW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 295 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySymlinkUtf8 :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntrySymlinkUtf8 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySymlinkUtf8'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 296 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUid :: (ArchiveEntryPtr) -> IO ((LaInt64))
archiveEntryUid a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUid'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 297 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUname :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryUname a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUname'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 298 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnameUtf8 :: (ArchiveEntryPtr) -> IO ((CString))
archiveEntryUnameUtf8 a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnameUtf8'_ a1' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 299 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnameW :: (ArchiveEntryPtr) -> IO ((CWString))
archiveEntryUnameW a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnameW'_ a1' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 300 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetAtime :: (ArchiveEntryPtr) -> (CTime) -> (CLong) -> IO ()
archiveEntrySetAtime a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  archiveEntrySetAtime'_ a1' a2' a3' >>
  return ()

{-# LINE 301 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnsetAtime :: (ArchiveEntryPtr) -> IO ()
archiveEntryUnsetAtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnsetAtime'_ a1' >>
  return ()

{-# LINE 302 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetBirthtime :: (ArchiveEntryPtr) -> (CTime) -> (CLong) -> IO ()
archiveEntrySetBirthtime a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  archiveEntrySetBirthtime'_ a1' a2' a3' >>
  return ()

{-# LINE 303 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnsetBirthtime :: (ArchiveEntryPtr) -> IO ()
archiveEntryUnsetBirthtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnsetBirthtime'_ a1' >>
  return ()

{-# LINE 304 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetCtime :: (ArchiveEntryPtr) -> (CTime) -> (CLong) -> IO ()
archiveEntrySetCtime a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  archiveEntrySetCtime'_ a1' a2' a3' >>
  return ()

{-# LINE 305 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnsetCtime :: (ArchiveEntryPtr) -> IO ()
archiveEntryUnsetCtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnsetCtime'_ a1' >>
  return ()

{-# LINE 306 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetDev :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetDev a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetDev'_ a1' a2' >>
  return ()

{-# LINE 307 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetDevmajor :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetDevmajor a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetDevmajor'_ a1' a2' >>
  return ()

{-# LINE 308 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetDevminor :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetDevminor a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetDevminor'_ a1' a2' >>
  return ()

{-# LINE 309 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetFflags :: (ArchiveEntryPtr) -> (CULong) -> (CULong) -> IO ()
archiveEntrySetFflags a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  let {a3' = fromIntegral a3} in 
  archiveEntrySetFflags'_ a1' a2' a3' >>
  return ()

{-# LINE 310 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyFflagsText :: (ArchiveEntryPtr) -> (CString) -> IO ((CString))
archiveEntryCopyFflagsText a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyFflagsText'_ a1' a2' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 311 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyFflagsTextW :: (ArchiveEntryPtr) -> (CWString) -> IO ((CWString))
archiveEntryCopyFflagsTextW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyFflagsTextW'_ a1' a2' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 312 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

-- | Here a 'Nothing' means a hardlink
archiveEntrySetFiletype :: (ArchiveEntryPtr) -> (Maybe FileType) -> IO ()
archiveEntrySetFiletype a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = uft a2} in 
  archiveEntrySetFiletype'_ a1' a2' >>
  return ()

{-# LINE 314 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetGid :: (ArchiveEntryPtr) -> (LaInt64) -> IO ()
archiveEntrySetGid a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetGid'_ a1' a2' >>
  return ()

{-# LINE 315 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetGname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetGname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetGname'_ a1' a2' >>
  return ()

{-# LINE 316 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetGnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetGnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetGnameUtf8'_ a1' a2' >>
  return ()

{-# LINE 317 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyGname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopyGname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyGname'_ a1' a2' >>
  return ()

{-# LINE 318 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyGnameW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopyGnameW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyGnameW'_ a1' a2' >>
  return ()

{-# LINE 319 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetHardlink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetHardlink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetHardlink'_ a1' a2' >>
  return ()

{-# LINE 320 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetHardlinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetHardlinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetHardlinkUtf8'_ a1' a2' >>
  return ()

{-# LINE 321 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyHardlink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopyHardlink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyHardlink'_ a1' a2' >>
  return ()

{-# LINE 322 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyHardlinkW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopyHardlinkW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyHardlinkW'_ a1' a2' >>
  return ()

{-# LINE 323 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetIno :: (ArchiveEntryPtr) -> (LaInt64) -> IO ()
archiveEntrySetIno a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetIno'_ a1' a2' >>
  return ()

{-# LINE 324 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetIno64 :: (ArchiveEntryPtr) -> (LaInt64) -> IO ()
archiveEntrySetIno64 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetIno64'_ a1' a2' >>
  return ()

{-# LINE 325 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetLink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetLink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetLink'_ a1' a2' >>
  return ()

{-# LINE 326 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetLinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetLinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetLinkUtf8'_ a1' a2' >>
  return ()

{-# LINE 327 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyLink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopyLink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyLink'_ a1' a2' >>
  return ()

{-# LINE 328 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyLinkW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopyLinkW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyLinkW'_ a1' a2' >>
  return ()

{-# LINE 329 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetMode :: (ArchiveEntryPtr) -> (CMode) -> IO ()
archiveEntrySetMode a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetMode'_ a1' a2' >>
  return ()

{-# LINE 330 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetMtime :: (ArchiveEntryPtr) -> (CTime) -> (CLong) -> IO ()
archiveEntrySetMtime a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = fromIntegral a3} in 
  archiveEntrySetMtime'_ a1' a2' a3' >>
  return ()

{-# LINE 331 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnsetMtime :: (ArchiveEntryPtr) -> IO ()
archiveEntryUnsetMtime a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnsetMtime'_ a1' >>
  return ()

{-# LINE 332 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetNlink :: (ArchiveEntryPtr) -> (CUInt) -> IO ()
archiveEntrySetNlink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  archiveEntrySetNlink'_ a1' a2' >>
  return ()

{-# LINE 333 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetPathname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetPathname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetPathname'_ a1' a2' >>
  return ()

{-# LINE 334 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetPathnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetPathnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetPathnameUtf8'_ a1' a2' >>
  return ()

{-# LINE 335 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyPathname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopyPathname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyPathname'_ a1' a2' >>
  return ()

{-# LINE 336 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyPathnameW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopyPathnameW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyPathnameW'_ a1' a2' >>
  return ()

{-# LINE 337 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetPerm :: (ArchiveEntryPtr) -> (CMode) -> IO ()
archiveEntrySetPerm a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetPerm'_ a1' a2' >>
  return ()

{-# LINE 338 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetRdev :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetRdev a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetRdev'_ a1' a2' >>
  return ()

{-# LINE 339 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetRdevmajor :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetRdevmajor a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetRdevmajor'_ a1' a2' >>
  return ()

{-# LINE 340 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetRdevminor :: (ArchiveEntryPtr) -> (CDev) -> IO ()
archiveEntrySetRdevminor a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetRdevminor'_ a1' a2' >>
  return ()

{-# LINE 341 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetSize :: (ArchiveEntryPtr) -> (LaInt64) -> IO ()
archiveEntrySetSize a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetSize'_ a1' a2' >>
  return ()

{-# LINE 342 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUnsetSize :: (ArchiveEntryPtr) -> IO ()
archiveEntryUnsetSize a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryUnsetSize'_ a1' >>
  return ()

{-# LINE 343 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopySourcepath :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopySourcepath a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopySourcepath'_ a1' a2' >>
  return ()

{-# LINE 344 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopySourcepathW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopySourcepathW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopySourcepathW'_ a1' a2' >>
  return ()

{-# LINE 345 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetSymlink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetSymlink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetSymlink'_ a1' a2' >>
  return ()

{-# LINE 346 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetSymlinkType :: (ArchiveEntryPtr) -> (Symlink) -> IO ()
archiveEntrySetSymlinkType a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = (fromIntegral . fromEnum) a2} in 
  archiveEntrySetSymlinkType'_ a1' a2' >>
  return ()

{-# LINE 347 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetSymlinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetSymlinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetSymlinkUtf8'_ a1' a2' >>
  return ()

{-# LINE 348 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopySymlink :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopySymlink a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopySymlink'_ a1' a2' >>
  return ()

{-# LINE 349 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopySymlinkW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopySymlinkW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopySymlinkW'_ a1' a2' >>
  return ()

{-# LINE 350 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetUid :: (ArchiveEntryPtr) -> (LaInt64) -> IO ()
archiveEntrySetUid a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntrySetUid'_ a1' a2' >>
  return ()

{-# LINE 351 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetUname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetUname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetUname'_ a1' a2' >>
  return ()

{-# LINE 352 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySetUnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntrySetUnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntrySetUnameUtf8'_ a1' a2' >>
  return ()

{-# LINE 353 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyUname :: (ArchiveEntryPtr) -> (CString) -> IO ()
archiveEntryCopyUname a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryCopyUname'_ a1' a2' >>
  return ()

{-# LINE 354 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyUnameW :: (ArchiveEntryPtr) -> (CWString) -> IO ()
archiveEntryCopyUnameW a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryCopyUnameW'_ a1' a2' >>
  return ()

{-# LINE 355 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryStat :: (ArchiveEntryPtr) -> IO ((StatPtr))
archiveEntryStat a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryStat'_ a1' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 356 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyStat :: (ArchiveEntryPtr) -> (StatPtr) -> IO ()
archiveEntryCopyStat a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  archiveEntryCopyStat'_ a1' a2' >>
  return ()

{-# LINE 357 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryMacMetadata :: (ArchiveEntryPtr) -> (Ptr CSize) -> IO ((Ptr a))
archiveEntryMacMetadata a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  archiveEntryMacMetadata'_ a1' a2' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 358 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCopyMacMetadata :: (ArchiveEntryPtr) -> (Ptr a) -> (CSize) -> IO ()
archiveEntryCopyMacMetadata a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  let {a3' = id a3} in 
  archiveEntryCopyMacMetadata'_ a1' a2' a3' >>
  return ()

{-# LINE 359 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


archiveEntryAclClear :: (ArchiveEntryPtr) -> IO ()
archiveEntryAclClear a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryAclClear'_ a1' >>
  return ()

{-# LINE 361 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclAddEntry :: (ArchiveEntryPtr) -> (EntryACL) -> (EntryACL) -> (EntryACL) -> (CInt) -> (CString) -> IO ((CInt))
archiveEntryAclAddEntry a1 a2 a3 a4 a5 a6 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = coerce a2} in 
  let {a3' = coerce a3} in 
  let {a4' = coerce a4} in 
  let {a5' = fromIntegral a5} in 
  (flip ($)) a6 $ \a6' -> 
  archiveEntryAclAddEntry'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 362 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclAddEntryW :: (ArchiveEntryPtr) -> (EntryACL) -> (EntryACL) -> (EntryACL) -> (CInt) -> (CWString) -> IO ((CInt))
archiveEntryAclAddEntryW a1 a2 a3 a4 a5 a6 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = coerce a2} in 
  let {a3' = coerce a3} in 
  let {a4' = coerce a4} in 
  let {a5' = fromIntegral a5} in 
  let {a6' = castPtr a6} in 
  archiveEntryAclAddEntryW'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 363 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclReset :: (ArchiveEntryPtr) -> (EntryACL) -> IO ((CInt))
archiveEntryAclReset a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = coerce a2} in 
  archiveEntryAclReset'_ a1' a2' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 364 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclNext :: (ArchiveEntryPtr) -> (EntryACL) -> (Ptr EntryACL) -> (Ptr EntryACL) -> (Ptr EntryACL) -> (Ptr CInt) -> (Ptr CString) -> IO ((CInt))
archiveEntryAclNext a1 a2 a3 a4 a5 a6 a7 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = coerce a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = castPtr a4} in 
  let {a5' = castPtr a5} in 
  let {a6' = id a6} in 
  let {a7' = id a7} in 
  archiveEntryAclNext'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 365 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

-- This function is in the header but not in nm libarchive.a | rg ...
-- {# fun archive_entry_acl_next_w as ^ { `ArchiveEntryPtr', coerce `EntryACL', castPtr `Ptr EntryACL', castPtr `Ptr EntryACL', castPtr `Ptr EntryACL', id `Ptr CInt', id `Ptr CWString' } -> `CInt' #}
archiveEntryAclToTextW :: (ArchiveEntryPtr) -> (Ptr LaSSize) -> (EntryACL) -> IO ((CWString))
archiveEntryAclToTextW a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  let {a3' = coerce a3} in 
  archiveEntryAclToTextW'_ a1' a2' a3' >>= \res ->
  let {res' = castPtr res} in
  return (res')

{-# LINE 368 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclToText :: (ArchiveEntryPtr) -> (Ptr LaSSize) -> (EntryACL) -> IO ((CString))
archiveEntryAclToText a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  let {a3' = coerce a3} in 
  archiveEntryAclToText'_ a1' a2' a3' >>= \res ->
  return res >>= \res' ->
  return (res')

{-# LINE 369 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclFromText :: (ArchiveEntryPtr) -> (CString) -> (EntryACL) -> IO ((CInt))
archiveEntryAclFromText a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = coerce a3} in 
  archiveEntryAclFromText'_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 370 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclFromTextW :: (ArchiveEntryPtr) -> (CWString) -> (EntryACL) -> IO ((CInt))
archiveEntryAclFromTextW a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = castPtr a2} in 
  let {a3' = coerce a3} in 
  archiveEntryAclFromTextW'_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 371 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclTypes :: (ArchiveEntryPtr) -> IO ((EntryACL))
archiveEntryAclTypes a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryAclTypes'_ a1' >>= \res ->
  let {res' = coerce res} in
  return (res')

{-# LINE 372 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryAclCount :: (ArchiveEntryPtr) -> (EntryACL) -> IO ((CInt))
archiveEntryAclCount a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = coerce a2} in 
  archiveEntryAclCount'_ a1' a2' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 373 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


archiveEntryXattrClear :: (ArchiveEntryPtr) -> IO ()
archiveEntryXattrClear a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryXattrClear'_ a1' >>
  return ()

{-# LINE 375 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryXattrAddEntry :: (ArchiveEntryPtr) -> (CString) -> (Ptr a) -> (CSize) -> IO ()
archiveEntryXattrAddEntry a1 a2 a3 a4 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  let {a3' = castPtr a3} in 
  let {a4' = id a4} in 
  archiveEntryXattrAddEntry'_ a1' a2' a3' a4' >>
  return ()

{-# LINE 376 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryXattrCount :: (ArchiveEntryPtr) -> IO ((CInt))
archiveEntryXattrCount a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryXattrCount'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 377 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryXattrReset :: (ArchiveEntryPtr) -> IO ((CInt))
archiveEntryXattrReset a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryXattrReset'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 378 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryXattrNext :: (ArchiveEntryPtr) -> (Ptr CString) -> (Ptr (Ptr a)) -> (Ptr CSize) -> IO ((CInt))
archiveEntryXattrNext a1 a2 a3 a4 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = castPtr a3} in 
  let {a4' = id a4} in 
  archiveEntryXattrNext'_ a1' a2' a3' a4' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 379 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySparseClear :: (ArchiveEntryPtr) -> IO ()
archiveEntrySparseClear a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySparseClear'_ a1' >>
  return ()

{-# LINE 380 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySparseAddEntry :: (ArchiveEntryPtr) -> (LaInt64) -> (LaInt64) -> IO ()
archiveEntrySparseAddEntry a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveEntrySparseAddEntry'_ a1' a2' a3' >>
  return ()

{-# LINE 381 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySparseCount :: (ArchiveEntryPtr) -> IO ((CInt))
archiveEntrySparseCount a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySparseCount'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 382 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySparseReset :: (ArchiveEntryPtr) -> IO ((CInt))
archiveEntrySparseReset a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySparseReset'_ a1' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 383 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySparseNext :: (ArchiveEntryPtr) -> (Ptr LaInt64) -> (Ptr LaInt64) -> IO ((CInt))
archiveEntrySparseNext a1 a2 a3 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveEntrySparseNext'_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')

{-# LINE 384 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryLinkresolverNew :: IO ((LinkResolverPtr))
archiveEntryLinkresolverNew =
  archiveEntryLinkresolverNew'_ >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 385 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryLinkresolverSetStrategy :: (LinkResolverPtr) -> (ArchiveFormat) -> IO ()
archiveEntryLinkresolverSetStrategy a1 a2 =
  let {a1' = id a1} in 
  let {a2' = (fromIntegral . fromEnum) a2} in 
  archiveEntryLinkresolverSetStrategy'_ a1' a2' >>
  return ()

{-# LINE 386 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryLinkresolverFree :: (LinkResolverPtr) -> IO ()
archiveEntryLinkresolverFree a1 =
  let {a1' = id a1} in 
  archiveEntryLinkresolverFree'_ a1' >>
  return ()

{-# LINE 387 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryLinkify :: (LinkResolverPtr) -> (Ptr (Ptr ArchiveEntry)) -> (Ptr (Ptr ArchiveEntry)) -> IO ()
archiveEntryLinkify a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  archiveEntryLinkify'_ a1' a2' a3' >>
  return ()

{-# LINE 388 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryPartialLinks :: (LinkResolverPtr) -> (Ptr CUInt) -> IO ((Ptr ArchiveEntry))
archiveEntryPartialLinks a1 a2 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  archiveEntryPartialLinks'_ a1' a2' >>= \res ->
  let {res' = id res} in
  return (res')

{-# LINE 389 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


archiveEntryAtimeIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryAtimeIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryAtimeIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 391 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryBirthtimeIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryBirthtimeIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryBirthtimeIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 392 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryCtimeIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryCtimeIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryCtimeIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 393 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryDevIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryDevIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryDevIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 394 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryInoIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryInoIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryInoIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 395 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryMtimeIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryMtimeIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryMtimeIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 396 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntrySizeIsSet :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntrySizeIsSet a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntrySizeIsSet'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 397 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryIsDataEncrypted :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryIsDataEncrypted a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryIsDataEncrypted'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 398 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryIsMetadataEncrypted :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryIsMetadataEncrypted a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryIsMetadataEncrypted'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 399 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryIsEncrypted :: (ArchiveEntryPtr) -> IO ((Bool))
archiveEntryIsEncrypted a1 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  archiveEntryIsEncrypted'_ a1' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 400 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdateGnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdateGnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdateGnameUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 401 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdateHardlinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdateHardlinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdateHardlinkUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 402 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdateLinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdateLinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdateLinkUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 403 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdatePathnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdatePathnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdatePathnameUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 404 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdateSymlinkUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdateSymlinkUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdateSymlinkUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 405 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}

archiveEntryUpdateUnameUtf8 :: (ArchiveEntryPtr) -> (CString) -> IO ((Bool))
archiveEntryUpdateUnameUtf8 a1 a2 =
  C2HSImp.withForeignPtr a1 $ \a1' -> 
  (flip ($)) a2 $ \a2' -> 
  archiveEntryUpdateUnameUtf8'_ a1' a2' >>= \res ->
  let {res' = C2HSImp.toBool res} in
  return (res')

{-# LINE 406 "src/Codec/Archive/Foreign/ArchiveEntry.chs" #-}


foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_clear"
  archiveEntryClear'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr (ArchiveEntry))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_clone"
  archiveEntryClone'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr (ArchiveEntry))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_new"
  archiveEntryNew'_ :: (IO (C2HSImp.Ptr (ArchiveEntry)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_new2"
  archiveEntryNew2'_ :: ((C2HSImp.Ptr (Archive)) -> (IO (C2HSImp.Ptr (ArchiveEntry))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_atime"
  archiveEntryAtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CTime))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_atime_nsec"
  archiveEntryAtimeNsec'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CLong))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_birthtime"
  archiveEntryBirthtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CTime))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_birthtime_nsec"
  archiveEntryBirthtimeNsec'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CLong))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ctime"
  archiveEntryCtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CTime))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ctime_nsec"
  archiveEntryCtimeNsec'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CLong))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_dev"
  archiveEntryDev'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_devminor"
  archiveEntryDevminor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_devmajor"
  archiveEntryDevmajor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_fflags"
  archiveEntryFflags'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CULong) -> ((C2HSImp.Ptr C2HSImp.CULong) -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_fflags_text"
  archiveEntryFflagsText'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_filetype"
  archiveEntryFiletype'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CMode))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_gid"
  archiveEntryGid'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_gname"
  archiveEntryGname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_gname_utf8"
  archiveEntryGnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_gname_w"
  archiveEntryGnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_hardlink"
  archiveEntryHardlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_hardlink_utf8"
  archiveEntryHardlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_hardlink_w"
  archiveEntryHardlinkW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ino"
  archiveEntryIno'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ino64"
  archiveEntryIno64'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_mode"
  archiveEntryMode'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CMode))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_mtime"
  archiveEntryMtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CTime))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_mtime_nsec"
  archiveEntryMtimeNsec'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CLong))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_nlink"
  archiveEntryNlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CUInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_pathname"
  archiveEntryPathname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_pathname_utf8"
  archiveEntryPathnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_pathname_w"
  archiveEntryPathnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_perm"
  archiveEntryPerm'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CMode))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_rdev"
  archiveEntryRdev'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_rdevmajor"
  archiveEntryRdevmajor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_rdevminor"
  archiveEntryRdevminor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO CDev))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sourcepath"
  archiveEntrySourcepath'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sourcepath_w"
  archiveEntrySourcepathW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_size"
  archiveEntrySize'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_strmode"
  archiveEntryStrmode'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_symlink"
  archiveEntrySymlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_symlink_type"
  archiveEntrySymlinkType'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_symlink_w"
  archiveEntrySymlinkW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_symlink_utf8"
  archiveEntrySymlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_uid"
  archiveEntryUid'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO LaInt64))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_uname"
  archiveEntryUname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_uname_utf8"
  archiveEntryUnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr C2HSImp.CChar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_uname_w"
  archiveEntryUnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (C2HSImp.Ptr CWchar)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_atime"
  archiveEntrySetAtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CTime -> (C2HSImp.CLong -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_unset_atime"
  archiveEntryUnsetAtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_birthtime"
  archiveEntrySetBirthtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CTime -> (C2HSImp.CLong -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_unset_birthtime"
  archiveEntryUnsetBirthtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_ctime"
  archiveEntrySetCtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CTime -> (C2HSImp.CLong -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_unset_ctime"
  archiveEntryUnsetCtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_dev"
  archiveEntrySetDev'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_devmajor"
  archiveEntrySetDevmajor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_devminor"
  archiveEntrySetDevminor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_fflags"
  archiveEntrySetFflags'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CULong -> (C2HSImp.CULong -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_fflags_text"
  archiveEntryCopyFflagsText'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO (C2HSImp.Ptr C2HSImp.CChar))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_fflags_text_w"
  archiveEntryCopyFflagsTextW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO (C2HSImp.Ptr CWchar))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_filetype"
  archiveEntrySetFiletype'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CUInt -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_gid"
  archiveEntrySetGid'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_gname"
  archiveEntrySetGname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_gname_utf8"
  archiveEntrySetGnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_gname"
  archiveEntryCopyGname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_gname_w"
  archiveEntryCopyGnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_hardlink"
  archiveEntrySetHardlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_hardlink_utf8"
  archiveEntrySetHardlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_hardlink"
  archiveEntryCopyHardlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_hardlink_w"
  archiveEntryCopyHardlinkW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_ino"
  archiveEntrySetIno'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_ino64"
  archiveEntrySetIno64'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_link"
  archiveEntrySetLink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_link_utf8"
  archiveEntrySetLinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_link"
  archiveEntryCopyLink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_link_w"
  archiveEntryCopyLinkW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_mode"
  archiveEntrySetMode'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CMode -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_mtime"
  archiveEntrySetMtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CTime -> (C2HSImp.CLong -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_unset_mtime"
  archiveEntryUnsetMtime'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_nlink"
  archiveEntrySetNlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CUInt -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_pathname"
  archiveEntrySetPathname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_pathname_utf8"
  archiveEntrySetPathnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_pathname"
  archiveEntryCopyPathname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_pathname_w"
  archiveEntryCopyPathnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_perm"
  archiveEntrySetPerm'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CMode -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_rdev"
  archiveEntrySetRdev'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_rdevmajor"
  archiveEntrySetRdevmajor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_rdevminor"
  archiveEntrySetRdevminor'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (CDev -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_size"
  archiveEntrySetSize'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_unset_size"
  archiveEntryUnsetSize'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_sourcepath"
  archiveEntryCopySourcepath'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_sourcepath_w"
  archiveEntryCopySourcepathW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_symlink"
  archiveEntrySetSymlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_symlink_type"
  archiveEntrySetSymlinkType'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_symlink_utf8"
  archiveEntrySetSymlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_symlink"
  archiveEntryCopySymlink'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_symlink_w"
  archiveEntryCopySymlinkW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_uid"
  archiveEntrySetUid'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_uname"
  archiveEntrySetUname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_set_uname_utf8"
  archiveEntrySetUnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_uname"
  archiveEntryCopyUname'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_uname_w"
  archiveEntryCopyUnameW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_stat"
  archiveEntryStat'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO (StatPtr)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_stat"
  archiveEntryCopyStat'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((StatPtr) -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_mac_metadata"
  archiveEntryMacMetadata'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CSize) -> (IO (C2HSImp.Ptr ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_copy_mac_metadata"
  archiveEntryCopyMacMetadata'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_clear"
  archiveEntryAclClear'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_add_entry"
  archiveEntryAclAddEntry'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_add_entry_w"
  archiveEntryAclAddEntryW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr CWchar) -> (IO C2HSImp.CInt)))))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_reset"
  archiveEntryAclReset'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_next"
  archiveEntryAclNext'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr (C2HSImp.Ptr C2HSImp.CChar)) -> (IO C2HSImp.CInt))))))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_to_text_w"
  archiveEntryAclToTextW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CLong) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr CWchar)))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_to_text"
  archiveEntryAclToText'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CLong) -> (C2HSImp.CInt -> (IO (C2HSImp.Ptr C2HSImp.CChar)))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_from_text"
  archiveEntryAclFromText'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_from_text_w"
  archiveEntryAclFromTextW'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr CWchar) -> (C2HSImp.CInt -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_types"
  archiveEntryAclTypes'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_acl_count"
  archiveEntryAclCount'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (C2HSImp.CInt -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_xattr_clear"
  archiveEntryXattrClear'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_xattr_add_entry"
  archiveEntryXattrAddEntry'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> ((C2HSImp.Ptr ()) -> (CSize -> (IO ())))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_xattr_count"
  archiveEntryXattrCount'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_xattr_reset"
  archiveEntryXattrReset'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_xattr_next"
  archiveEntryXattrNext'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr (C2HSImp.Ptr C2HSImp.CChar)) -> ((C2HSImp.Ptr (C2HSImp.Ptr ())) -> ((C2HSImp.Ptr CSize) -> (IO C2HSImp.CInt)))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sparse_clear"
  archiveEntrySparseClear'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sparse_add_entry"
  archiveEntrySparseAddEntry'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (LaInt64 -> (LaInt64 -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sparse_count"
  archiveEntrySparseCount'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sparse_reset"
  archiveEntrySparseReset'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_sparse_next"
  archiveEntrySparseNext'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr LaInt64) -> ((C2HSImp.Ptr LaInt64) -> (IO C2HSImp.CInt))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_linkresolver_new"
  archiveEntryLinkresolverNew'_ :: (IO (LinkResolverPtr))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_linkresolver_set_strategy"
  archiveEntryLinkresolverSetStrategy'_ :: ((LinkResolverPtr) -> (C2HSImp.CInt -> (IO ())))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_linkresolver_free"
  archiveEntryLinkresolverFree'_ :: ((LinkResolverPtr) -> (IO ()))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_linkify"
  archiveEntryLinkify'_ :: ((LinkResolverPtr) -> ((C2HSImp.Ptr (C2HSImp.Ptr (ArchiveEntry))) -> ((C2HSImp.Ptr (C2HSImp.Ptr (ArchiveEntry))) -> (IO ()))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_partial_links"
  archiveEntryPartialLinks'_ :: ((LinkResolverPtr) -> ((C2HSImp.Ptr C2HSImp.CUInt) -> (IO (C2HSImp.Ptr (ArchiveEntry)))))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_atime_is_set"
  archiveEntryAtimeIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_birthtime_is_set"
  archiveEntryBirthtimeIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ctime_is_set"
  archiveEntryCtimeIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_dev_is_set"
  archiveEntryDevIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_ino_is_set"
  archiveEntryInoIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_mtime_is_set"
  archiveEntryMtimeIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_size_is_set"
  archiveEntrySizeIsSet'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_is_data_encrypted"
  archiveEntryIsDataEncrypted'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_is_metadata_encrypted"
  archiveEntryIsMetadataEncrypted'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_is_encrypted"
  archiveEntryIsEncrypted'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> (IO C2HSImp.CInt))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_gname_utf8"
  archiveEntryUpdateGnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_hardlink_utf8"
  archiveEntryUpdateHardlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_link_utf8"
  archiveEntryUpdateLinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_pathname_utf8"
  archiveEntryUpdatePathnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_symlink_utf8"
  archiveEntryUpdateSymlinkUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))

foreign import ccall safe "Codec/Archive/Foreign/ArchiveEntry.chs.h archive_entry_update_uname_utf8"
  archiveEntryUpdateUnameUtf8'_ :: ((C2HSImp.Ptr (ArchiveEntry)) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))