module Debian.Dpkg.Types 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.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Data.ByteString as BS
data C'dpkg_version = C'dpkg_version{
c'dpkg_version'epoch :: CInt,
c'dpkg_version'version :: CString,
c'dpkg_version'revision :: CString
} deriving (Eq,Show)
p'dpkg_version'epoch p = plusPtr p 0
p'dpkg_version'epoch :: Ptr (C'dpkg_version) -> Ptr (CInt)
p'dpkg_version'version p = plusPtr p 8
p'dpkg_version'version :: Ptr (C'dpkg_version) -> Ptr (CString)
p'dpkg_version'revision p = plusPtr p 16
p'dpkg_version'revision :: Ptr (C'dpkg_version) -> Ptr (CString)
instance Storable C'dpkg_version where
sizeOf _ = 24
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
v2 <- peekByteOff _p 16
return $ C'dpkg_version v0 v1 v2
poke _p (C'dpkg_version v0 v1 v2) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
pokeByteOff _p 16 v2
return ()
data C'filedetails = C'filedetails{
c'filedetails'next :: Ptr C'filedetails,
c'filedetails'name :: CString,
c'filedetails'msdosname :: CString,
c'filedetails'size :: CString,
c'filedetails'md5sum :: CString
} deriving (Eq,Show)
p'filedetails'next p = plusPtr p 0
p'filedetails'next :: Ptr (C'filedetails) -> Ptr (Ptr C'filedetails)
p'filedetails'name p = plusPtr p 8
p'filedetails'name :: Ptr (C'filedetails) -> Ptr (CString)
p'filedetails'msdosname p = plusPtr p 16
p'filedetails'msdosname :: Ptr (C'filedetails) -> Ptr (CString)
p'filedetails'size p = plusPtr p 24
p'filedetails'size :: Ptr (C'filedetails) -> Ptr (CString)
p'filedetails'md5sum p = plusPtr p 32
p'filedetails'md5sum :: Ptr (C'filedetails) -> Ptr (CString)
instance Storable C'filedetails where
sizeOf _ = 40
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
v2 <- peekByteOff _p 16
v3 <- peekByteOff _p 24
v4 <- peekByteOff _p 32
return $ C'filedetails v0 v1 v2 v3 v4
poke _p (C'filedetails v0 v1 v2 v3 v4) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
pokeByteOff _p 16 v2
pokeByteOff _p 24 v3
pokeByteOff _p 32 v4
return ()
data C'pkgbin = C'pkgbin{
} deriving (Eq,Show)
instance Storable C'pkgbin where
sizeOf _ = 120
alignment _ = 8
peek _p = do
return $ C'pkgbin
poke _p (C'pkgbin) = do
return ()
data C'perpackagestate = C'perpackagestate
type C'pkgwant = CUInt
type C'pkgeflag = CUInt
type C'pkgstatus = CUInt
type C'pkgpriority = CInt
data C'pkgiterator = C'pkgiterator
data C'pkginfo = C'pkginfo{
c'pkginfo'set :: Ptr C'pkgset,
c'pkginfo'arch_next :: Ptr C'pkginfo,
c'pkginfo'want :: C'pkgwant,
c'pkginfo'eflag :: C'pkgeflag,
c'pkginfo'status :: C'pkgstatus,
c'pkginfo'priority :: C'pkgpriority,
c'pkginfo'otherpriority :: CString,
c'pkginfo'section :: CString,
c'pkginfo'configversion :: C'dpkg_version,
c'pkginfo'files :: Ptr C'filedetails,
c'pkginfo'installed :: C'pkgbin,
c'pkginfo'available :: C'pkgbin,
c'pkginfo'clientdata :: Ptr C'perpackagestate
} deriving (Eq,Show)
p'pkginfo'set p = plusPtr p 0
p'pkginfo'set :: Ptr (C'pkginfo) -> Ptr (Ptr C'pkgset)
p'pkginfo'arch_next p = plusPtr p 8
p'pkginfo'arch_next :: Ptr (C'pkginfo) -> Ptr (Ptr C'pkginfo)
p'pkginfo'want p = plusPtr p 16
p'pkginfo'want :: Ptr (C'pkginfo) -> Ptr (C'pkgwant)
p'pkginfo'eflag p = plusPtr p 20
p'pkginfo'eflag :: Ptr (C'pkginfo) -> Ptr (C'pkgeflag)
p'pkginfo'status p = plusPtr p 24
p'pkginfo'status :: Ptr (C'pkginfo) -> Ptr (C'pkgstatus)
p'pkginfo'priority p = plusPtr p 28
p'pkginfo'priority :: Ptr (C'pkginfo) -> Ptr (C'pkgpriority)
p'pkginfo'otherpriority p = plusPtr p 32
p'pkginfo'otherpriority :: Ptr (C'pkginfo) -> Ptr (CString)
p'pkginfo'section p = plusPtr p 40
p'pkginfo'section :: Ptr (C'pkginfo) -> Ptr (CString)
p'pkginfo'configversion p = plusPtr p 48
p'pkginfo'configversion :: Ptr (C'pkginfo) -> Ptr (C'dpkg_version)
p'pkginfo'files p = plusPtr p 72
p'pkginfo'files :: Ptr (C'pkginfo) -> Ptr (Ptr C'filedetails)
p'pkginfo'installed p = plusPtr p 80
p'pkginfo'installed :: Ptr (C'pkginfo) -> Ptr (C'pkgbin)
p'pkginfo'available p = plusPtr p 200
p'pkginfo'available :: Ptr (C'pkginfo) -> Ptr (C'pkgbin)
p'pkginfo'clientdata p = plusPtr p 320
p'pkginfo'clientdata :: Ptr (C'pkginfo) -> Ptr (Ptr C'perpackagestate)
instance Storable C'pkginfo where
sizeOf _ = 360
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
v2 <- peekByteOff _p 16
v3 <- peekByteOff _p 20
v4 <- peekByteOff _p 24
v5 <- peekByteOff _p 28
v6 <- peekByteOff _p 32
v7 <- peekByteOff _p 40
v8 <- peekByteOff _p 48
v9 <- peekByteOff _p 72
v10 <- peekByteOff _p 80
v11 <- peekByteOff _p 200
v12 <- peekByteOff _p 320
return $ C'pkginfo v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
poke _p (C'pkginfo v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
pokeByteOff _p 16 v2
pokeByteOff _p 20 v3
pokeByteOff _p 24 v4
pokeByteOff _p 28 v5
pokeByteOff _p 32 v6
pokeByteOff _p 40 v7
pokeByteOff _p 48 v8
pokeByteOff _p 72 v9
pokeByteOff _p 80 v10
pokeByteOff _p 200 v11
pokeByteOff _p 320 v12
return ()
data C'pkgset = C'pkgset{
c'pkgset'next :: Ptr C'pkgset,
c'pkgset'name :: CString,
c'pkgset'pkg :: C'pkginfo
} deriving (Eq,Show)
p'pkgset'next p = plusPtr p 0
p'pkgset'next :: Ptr (C'pkgset) -> Ptr (Ptr C'pkgset)
p'pkgset'name p = plusPtr p 8
p'pkgset'name :: Ptr (C'pkgset) -> Ptr (CString)
p'pkgset'pkg p = plusPtr p 16
p'pkgset'pkg :: Ptr (C'pkgset) -> Ptr (C'pkginfo)
instance Storable C'pkgset where
sizeOf _ = 400
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
v2 <- peekByteOff _p 16
return $ C'pkgset v0 v1 v2
poke _p (C'pkgset v0 v1 v2) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
pokeByteOff _p 16 v2
return ()
type C'dpkg_msg_type = CUInt
data C'dpkg_error = C'dpkg_error{
c'dpkg_error'type :: C'dpkg_msg_type,
c'dpkg_error'str :: CString
} deriving (Eq,Show)
p'dpkg_error'type p = plusPtr p 0
p'dpkg_error'type :: Ptr (C'dpkg_error) -> Ptr (C'dpkg_msg_type)
p'dpkg_error'str p = plusPtr p 8
p'dpkg_error'str :: Ptr (C'dpkg_error) -> Ptr (CString)
instance Storable C'dpkg_error where
sizeOf _ = 16
alignment _ = 8
peek _p = do
v0 <- peekByteOff _p 0
v1 <- peekByteOff _p 8
return $ C'dpkg_error v0 v1
poke _p (C'dpkg_error v0 v1) = do
pokeByteOff _p 0 v0
pokeByteOff _p 8 v1
return ()