Foreign.Storable

base-4.9.0.0: Basic libraries

Copyright | (c) The FFI task force 2001
License | see libraries/base/LICENSE
Maintainer | ffi@haskell.org
Stability | provisional
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

Foreign.Storable

Description

The module Foreign.Storable provides most elementary support for marshalling and is part of the language-independent portion of the Foreign Function Interface (FFI), and will normally be imported via the Foreign module.

Synopsis

- class Storable a where

# Documentation

class Storable a where Source

The member functions of this class facilitate writing values of primitive types to raw memory (which may have been allocated with the above mentioned routines) and reading values from blocks of raw memory. The class, furthermore, includes support for computing the storage requirements and alignment restrictions of storable types.

Memory addresses are represented as values of type ``Ptr` a`, for some `a` which is an instance of class `Storable`. The type argument to `Ptr` helps provide some valuable type safety in FFI code (you can't mix pointers of different types without an explicit cast), while helping the Haskell type system figure out which marshalling method is needed for a given pointer.

All marshalling between Haskell and a foreign language ultimately boils down to translating Haskell data structures into the binary representation of a corresponding data structure of the foreign language and vice versa. To code this marshalling in Haskell, it is necessary to manipulate primitive data types stored in unstructured memory blocks. The class `Storable` facilitates this manipulation on all types for which it is instantiated, which are the standard basic types of Haskell, the fixed size `Int` types (`Int8`, `Int16`, `Int32`, `Int64`), the fixed size `Word` types (`Word8`, `Word16`, `Word32`, `Word64`), `StablePtr`, all types from Foreign.C.Types, as well as `Ptr`.

Minimal complete definition

sizeOf, alignment, (peek | peekElemOff | peekByteOff), (poke | pokeElemOff | pokeByteOff)

Methods

sizeOf :: a -> Int Source

Computes the storage requirements (in bytes) of the argument. The value of the argument is not used.

alignment :: a -> Int Source

Computes the alignment constraint of the argument. An alignment constraint `x` is fulfilled by any address divisible by `x`. The value of the argument is not used.

peekElemOff :: Ptr a -> Int -> IO a Source

Read a value from a memory area regarded as an array of values of the same kind. The first argument specifies the start address of the array and the second the index into the array (the first element of the array has index `0`). The following equality holds,

    peekElemOff addr idx = IOExts.fixIO $ \result ->
      peek (addr `plusPtr` (idx * sizeOf result))

Note that this is only a specification, not necessarily the concrete implementation of the function.

pokeElemOff :: Ptr a -> Int -> a -> IO () Source

Write a value to a memory area regarded as an array of values of the same kind. The following equality holds:

    pokeElemOff addr idx x =
      poke (addr `plusPtr` (idx * sizeOf x)) x

peekByteOff :: Ptr b -> Int -> IO a Source

Read a value from a memory location given by a base address and offset. The following equality holds:

    peekByteOff addr off = peek (addr `plusPtr` off)

pokeByteOff :: Ptr b -> Int -> a -> IO () Source

Write a value to a memory location given by a base address and offset. The following equality holds:

    pokeByteOff addr off x = poke (addr `plusPtr` off) x

peek :: Ptr a -> IO a Source

Read a value from the given memory location.

Note that the peek and poke functions might require properly aligned addresses to function correctly. This is architecture dependent; thus, portable code should ensure that when peeking or poking values of some type `a`, the alignment constraint for `a`, as given by the function `alignment` is fulfilled.

poke :: Ptr a -> a -> IO () Source

Write the given value to the given memory location. Alignment restrictions might apply; see `peek`.

Instances

Storable Bool |
Methods sizeOf :: Bool -> Int Source alignment :: Bool -> Int Source peekElemOff :: Ptr Bool -> Int -> IO Bool Source pokeElemOff :: Ptr Bool -> Int -> Bool -> IO () Source peekByteOff :: Ptr b -> Int -> IO Bool Source pokeByteOff :: Ptr b -> Int -> Bool -> IO () Source peek :: Ptr Bool -> IO Bool Source poke :: Ptr Bool -> Bool -> IO () Source
Storable Char |
Methods sizeOf :: Char -> Int Source alignment :: Char -> Int Source peekElemOff :: Ptr Char -> Int -> IO Char Source pokeElemOff :: Ptr Char -> Int -> Char -> IO () Source peekByteOff :: Ptr b -> Int -> IO Char Source pokeByteOff :: Ptr b -> Int -> Char -> IO () Source peek :: Ptr Char -> IO Char Source poke :: Ptr Char -> Char -> IO () Source
Storable Double |
Methods sizeOf :: Double -> Int Source alignment :: Double -> Int Source peekElemOff :: Ptr Double -> Int -> IO Double Source pokeElemOff :: Ptr Double -> Int -> Double -> IO () Source peekByteOff :: Ptr b -> Int -> IO Double Source pokeByteOff :: Ptr b -> Int -> Double -> IO () Source peek :: Ptr Double -> IO Double Source poke :: Ptr Double -> Double -> IO () Source
Storable Float |
Methods sizeOf :: Float -> Int Source alignment :: Float -> Int Source peekElemOff :: Ptr Float -> Int -> IO Float Source pokeElemOff :: Ptr Float -> Int -> Float -> IO () Source peekByteOff :: Ptr b -> Int -> IO Float Source pokeByteOff :: Ptr b -> Int -> Float -> IO () Source peek :: Ptr Float -> IO Float Source poke :: Ptr Float -> Float -> IO () Source
Storable Int |
Methods sizeOf :: Int -> Int Source alignment :: Int -> Int Source peekElemOff :: Ptr Int -> Int -> IO Int Source pokeElemOff :: Ptr Int -> Int -> Int -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int Source pokeByteOff :: Ptr b -> Int -> Int -> IO () Source peek :: Ptr Int -> IO Int Source poke :: Ptr Int -> Int -> IO () Source
Storable Int8 |
Methods sizeOf :: Int8 -> Int Source alignment :: Int8 -> Int Source peekElemOff :: Ptr Int8 -> Int -> IO Int8 Source pokeElemOff :: Ptr Int8 -> Int -> Int8 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int8 Source pokeByteOff :: Ptr b -> Int -> Int8 -> IO () Source peek :: Ptr Int8 -> IO Int8 Source poke :: Ptr Int8 -> Int8 -> IO () Source
Storable Int16 |
Methods sizeOf :: Int16 -> Int Source alignment :: Int16 -> Int Source peekElemOff :: Ptr Int16 -> Int -> IO Int16 Source pokeElemOff :: Ptr Int16 -> Int -> Int16 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int16 Source pokeByteOff :: Ptr b -> Int -> Int16 -> IO () Source peek :: Ptr Int16 -> IO Int16 Source poke :: Ptr Int16 -> Int16 -> IO () Source
Storable Int32 |
Methods sizeOf :: Int32 -> Int Source alignment :: Int32 -> Int Source peekElemOff :: Ptr Int32 -> Int -> IO Int32 Source pokeElemOff :: Ptr Int32 -> Int -> Int32 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int32 Source pokeByteOff :: Ptr b -> Int -> Int32 -> IO () Source peek :: Ptr Int32 -> IO Int32 Source poke :: Ptr Int32 -> Int32 -> IO () Source
Storable Int64 |
Methods sizeOf :: Int64 -> Int Source alignment :: Int64 -> Int Source peekElemOff :: Ptr Int64 -> Int -> IO Int64 Source pokeElemOff :: Ptr Int64 -> Int -> Int64 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Int64 Source pokeByteOff :: Ptr b -> Int -> Int64 -> IO () Source peek :: Ptr Int64 -> IO Int64 Source poke :: Ptr Int64 -> Int64 -> IO () Source
Storable Word |
Methods sizeOf :: Word -> Int Source alignment :: Word -> Int Source peekElemOff :: Ptr Word -> Int -> IO Word Source pokeElemOff :: Ptr Word -> Int -> Word -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word Source pokeByteOff :: Ptr b -> Int -> Word -> IO () Source peek :: Ptr Word -> IO Word Source poke :: Ptr Word -> Word -> IO () Source
Storable Word8 |
Methods sizeOf :: Word8 -> Int Source alignment :: Word8 -> Int Source peekElemOff :: Ptr Word8 -> Int -> IO Word8 Source pokeElemOff :: Ptr Word8 -> Int -> Word8 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word8 Source pokeByteOff :: Ptr b -> Int -> Word8 -> IO () Source peek :: Ptr Word8 -> IO Word8 Source poke :: Ptr Word8 -> Word8 -> IO () Source
Storable Word16 |
Methods sizeOf :: Word16 -> Int Source alignment :: Word16 -> Int Source peekElemOff :: Ptr Word16 -> Int -> IO Word16 Source pokeElemOff :: Ptr Word16 -> Int -> Word16 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word16 Source pokeByteOff :: Ptr b -> Int -> Word16 -> IO () Source peek :: Ptr Word16 -> IO Word16 Source poke :: Ptr Word16 -> Word16 -> IO () Source
Storable Word32 |
Methods sizeOf :: Word32 -> Int Source alignment :: Word32 -> Int Source peekElemOff :: Ptr Word32 -> Int -> IO Word32 Source pokeElemOff :: Ptr Word32 -> Int -> Word32 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word32 Source pokeByteOff :: Ptr b -> Int -> Word32 -> IO () Source peek :: Ptr Word32 -> IO Word32 Source poke :: Ptr Word32 -> Word32 -> IO () Source
Storable Word64 |
Methods sizeOf :: Word64 -> Int Source alignment :: Word64 -> Int Source peekElemOff :: Ptr Word64 -> Int -> IO Word64 Source pokeElemOff :: Ptr Word64 -> Int -> Word64 -> IO () Source peekByteOff :: Ptr b -> Int -> IO Word64 Source pokeByteOff :: Ptr b -> Int -> Word64 -> IO () Source peek :: Ptr Word64 -> IO Word64 Source poke :: Ptr Word64 -> Word64 -> IO () Source
Storable () |
Methods sizeOf :: () -> Int Source alignment :: () -> Int Source peekElemOff :: Ptr () -> Int -> IO () Source pokeElemOff :: Ptr () -> Int -> () -> IO () Source peekByteOff :: Ptr b -> Int -> IO () Source pokeByteOff :: Ptr b -> Int -> () -> IO () Source peek :: Ptr () -> IO () Source poke :: Ptr () -> () -> IO () Source
Storable Fingerprint |
Methods sizeOf :: Fingerprint -> Int Source alignment :: Fingerprint -> Int Source peekElemOff :: Ptr Fingerprint -> Int -> IO Fingerprint Source pokeElemOff :: Ptr Fingerprint -> Int -> Fingerprint -> IO () Source peekByteOff :: Ptr b -> Int -> IO Fingerprint Source pokeByteOff :: Ptr b -> Int -> Fingerprint -> IO () Source peek :: Ptr Fingerprint -> IO Fingerprint Source poke :: Ptr Fingerprint -> Fingerprint -> IO () Source
Storable CUIntMax |
Methods sizeOf :: CUIntMax -> Int Source alignment :: CUIntMax -> Int Source peekElemOff :: Ptr CUIntMax -> Int -> IO CUIntMax Source pokeElemOff :: Ptr CUIntMax -> Int -> CUIntMax -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUIntMax Source pokeByteOff :: Ptr b -> Int -> CUIntMax -> IO () Source peek :: Ptr CUIntMax -> IO CUIntMax Source poke :: Ptr CUIntMax -> CUIntMax -> IO () Source
Storable CIntMax |
Methods sizeOf :: CIntMax -> Int Source alignment :: CIntMax -> Int Source peekElemOff :: Ptr CIntMax -> Int -> IO CIntMax Source pokeElemOff :: Ptr CIntMax -> Int -> CIntMax -> IO () Source peekByteOff :: Ptr b -> Int -> IO CIntMax Source pokeByteOff :: Ptr b -> Int -> CIntMax -> IO () Source peek :: Ptr CIntMax -> IO CIntMax Source poke :: Ptr CIntMax -> CIntMax -> IO () Source
Storable CUIntPtr |
Methods sizeOf :: CUIntPtr -> Int Source alignment :: CUIntPtr -> Int Source peekElemOff :: Ptr CUIntPtr -> Int -> IO CUIntPtr Source pokeElemOff :: Ptr CUIntPtr -> Int -> CUIntPtr -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUIntPtr Source pokeByteOff :: Ptr b -> Int -> CUIntPtr -> IO () Source peek :: Ptr CUIntPtr -> IO CUIntPtr Source poke :: Ptr CUIntPtr -> CUIntPtr -> IO () Source
Storable CIntPtr |
Methods sizeOf :: CIntPtr -> Int Source alignment :: CIntPtr -> Int Source peekElemOff :: Ptr CIntPtr -> Int -> IO CIntPtr Source pokeElemOff :: Ptr CIntPtr -> Int -> CIntPtr -> IO () Source peekByteOff :: Ptr b -> Int -> IO CIntPtr Source pokeByteOff :: Ptr b -> Int -> CIntPtr -> IO () Source peek :: Ptr CIntPtr -> IO CIntPtr Source poke :: Ptr CIntPtr -> CIntPtr -> IO () Source
Storable CSUSeconds |
Methods sizeOf :: CSUSeconds -> Int Source alignment :: CSUSeconds -> Int Source peekElemOff :: Ptr CSUSeconds -> Int -> IO CSUSeconds Source pokeElemOff :: Ptr CSUSeconds -> Int -> CSUSeconds -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSUSeconds Source pokeByteOff :: Ptr b -> Int -> CSUSeconds -> IO () Source peek :: Ptr CSUSeconds -> IO CSUSeconds Source poke :: Ptr CSUSeconds -> CSUSeconds -> IO () Source
Storable CUSeconds |
Methods sizeOf :: CUSeconds -> Int Source alignment :: CUSeconds -> Int Source peekElemOff :: Ptr CUSeconds -> Int -> IO CUSeconds Source pokeElemOff :: Ptr CUSeconds -> Int -> CUSeconds -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUSeconds Source pokeByteOff :: Ptr b -> Int -> CUSeconds -> IO () Source peek :: Ptr CUSeconds -> IO CUSeconds Source poke :: Ptr CUSeconds -> CUSeconds -> IO () Source
Storable CTime |
Methods sizeOf :: CTime -> Int Source alignment :: CTime -> Int Source peekElemOff :: Ptr CTime -> Int -> IO CTime Source pokeElemOff :: Ptr CTime -> Int -> CTime -> IO () Source peekByteOff :: Ptr b -> Int -> IO CTime Source pokeByteOff :: Ptr b -> Int -> CTime -> IO () Source peek :: Ptr CTime -> IO CTime Source poke :: Ptr CTime -> CTime -> IO () Source
Storable CClock |
Methods sizeOf :: CClock -> Int Source alignment :: CClock -> Int Source peekElemOff :: Ptr CClock -> Int -> IO CClock Source pokeElemOff :: Ptr CClock -> Int -> CClock -> IO () Source peekByteOff :: Ptr b -> Int -> IO CClock Source pokeByteOff :: Ptr b -> Int -> CClock -> IO () Source peek :: Ptr CClock -> IO CClock Source poke :: Ptr CClock -> CClock -> IO () Source
Storable CSigAtomic |
Methods sizeOf :: CSigAtomic -> Int Source alignment :: CSigAtomic -> Int Source peekElemOff :: Ptr CSigAtomic -> Int -> IO CSigAtomic Source pokeElemOff :: Ptr CSigAtomic -> Int -> CSigAtomic -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSigAtomic Source pokeByteOff :: Ptr b -> Int -> CSigAtomic -> IO () Source peek :: Ptr CSigAtomic -> IO CSigAtomic Source poke :: Ptr CSigAtomic -> CSigAtomic -> IO () Source
Storable CWchar |
Methods sizeOf :: CWchar -> Int Source alignment :: CWchar -> Int Source peekElemOff :: Ptr CWchar -> Int -> IO CWchar Source pokeElemOff :: Ptr CWchar -> Int -> CWchar -> IO () Source peekByteOff :: Ptr b -> Int -> IO CWchar Source pokeByteOff :: Ptr b -> Int -> CWchar -> IO () Source peek :: Ptr CWchar -> IO CWchar Source poke :: Ptr CWchar -> CWchar -> IO () Source
Storable CSize |
Methods sizeOf :: CSize -> Int Source alignment :: CSize -> Int Source peekElemOff :: Ptr CSize -> Int -> IO CSize Source pokeElemOff :: Ptr CSize -> Int -> CSize -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSize Source pokeByteOff :: Ptr b -> Int -> CSize -> IO () Source peek :: Ptr CSize -> IO CSize Source poke :: Ptr CSize -> CSize -> IO () Source
Storable CPtrdiff |
Methods sizeOf :: CPtrdiff -> Int Source alignment :: CPtrdiff -> Int Source peekElemOff :: Ptr CPtrdiff -> Int -> IO CPtrdiff Source pokeElemOff :: Ptr CPtrdiff -> Int -> CPtrdiff -> IO () Source peekByteOff :: Ptr b -> Int -> IO CPtrdiff Source pokeByteOff :: Ptr b -> Int -> CPtrdiff -> IO () Source peek :: Ptr CPtrdiff -> IO CPtrdiff Source poke :: Ptr CPtrdiff -> CPtrdiff -> IO () Source
Storable CDouble |
Methods sizeOf :: CDouble -> Int Source alignment :: CDouble -> Int Source peekElemOff :: Ptr CDouble -> Int -> IO CDouble Source pokeElemOff :: Ptr CDouble -> Int -> CDouble -> IO () Source peekByteOff :: Ptr b -> Int -> IO CDouble Source pokeByteOff :: Ptr b -> Int -> CDouble -> IO () Source peek :: Ptr CDouble -> IO CDouble Source poke :: Ptr CDouble -> CDouble -> IO () Source
Storable CFloat |
Methods sizeOf :: CFloat -> Int Source alignment :: CFloat -> Int Source peekElemOff :: Ptr CFloat -> Int -> IO CFloat Source pokeElemOff :: Ptr CFloat -> Int -> CFloat -> IO () Source peekByteOff :: Ptr b -> Int -> IO CFloat Source pokeByteOff :: Ptr b -> Int -> CFloat -> IO () Source peek :: Ptr CFloat -> IO CFloat Source poke :: Ptr CFloat -> CFloat -> IO () Source
Storable CULLong |
Methods sizeOf :: CULLong -> Int Source alignment :: CULLong -> Int Source peekElemOff :: Ptr CULLong -> Int -> IO CULLong Source pokeElemOff :: Ptr CULLong -> Int -> CULLong -> IO () Source peekByteOff :: Ptr b -> Int -> IO CULLong Source pokeByteOff :: Ptr b -> Int -> CULLong -> IO () Source peek :: Ptr CULLong -> IO CULLong Source poke :: Ptr CULLong -> CULLong -> IO () Source
Storable CLLong |
Methods sizeOf :: CLLong -> Int Source alignment :: CLLong -> Int Source peekElemOff :: Ptr CLLong -> Int -> IO CLLong Source pokeElemOff :: Ptr CLLong -> Int -> CLLong -> IO () Source peekByteOff :: Ptr b -> Int -> IO CLLong Source pokeByteOff :: Ptr b -> Int -> CLLong -> IO () Source peek :: Ptr CLLong -> IO CLLong Source poke :: Ptr CLLong -> CLLong -> IO () Source
Storable CULong |
Methods sizeOf :: CULong -> Int Source alignment :: CULong -> Int Source peekElemOff :: Ptr CULong -> Int -> IO CULong Source pokeElemOff :: Ptr CULong -> Int -> CULong -> IO () Source peekByteOff :: Ptr b -> Int -> IO CULong Source pokeByteOff :: Ptr b -> Int -> CULong -> IO () Source peek :: Ptr CULong -> IO CULong Source poke :: Ptr CULong -> CULong -> IO () Source
Storable CLong |
Methods sizeOf :: CLong -> Int Source alignment :: CLong -> Int Source peekElemOff :: Ptr CLong -> Int -> IO CLong Source pokeElemOff :: Ptr CLong -> Int -> CLong -> IO () Source peekByteOff :: Ptr b -> Int -> IO CLong Source pokeByteOff :: Ptr b -> Int -> CLong -> IO () Source peek :: Ptr CLong -> IO CLong Source poke :: Ptr CLong -> CLong -> IO () Source
Storable CUInt |
Methods sizeOf :: CUInt -> Int Source alignment :: CUInt -> Int Source peekElemOff :: Ptr CUInt -> Int -> IO CUInt Source pokeElemOff :: Ptr CUInt -> Int -> CUInt -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUInt Source pokeByteOff :: Ptr b -> Int -> CUInt -> IO () Source peek :: Ptr CUInt -> IO CUInt Source poke :: Ptr CUInt -> CUInt -> IO () Source
Storable CInt |
Methods sizeOf :: CInt -> Int Source alignment :: CInt -> Int Source peekElemOff :: Ptr CInt -> Int -> IO CInt Source pokeElemOff :: Ptr CInt -> Int -> CInt -> IO () Source peekByteOff :: Ptr b -> Int -> IO CInt Source pokeByteOff :: Ptr b -> Int -> CInt -> IO () Source peek :: Ptr CInt -> IO CInt Source poke :: Ptr CInt -> CInt -> IO () Source
Storable CUShort |
Methods sizeOf :: CUShort -> Int Source alignment :: CUShort -> Int Source peekElemOff :: Ptr CUShort -> Int -> IO CUShort Source pokeElemOff :: Ptr CUShort -> Int -> CUShort -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUShort Source pokeByteOff :: Ptr b -> Int -> CUShort -> IO () Source peek :: Ptr CUShort -> IO CUShort Source poke :: Ptr CUShort -> CUShort -> IO () Source
Storable CShort |
Methods sizeOf :: CShort -> Int Source alignment :: CShort -> Int Source peekElemOff :: Ptr CShort -> Int -> IO CShort Source pokeElemOff :: Ptr CShort -> Int -> CShort -> IO () Source peekByteOff :: Ptr b -> Int -> IO CShort Source pokeByteOff :: Ptr b -> Int -> CShort -> IO () Source peek :: Ptr CShort -> IO CShort Source poke :: Ptr CShort -> CShort -> IO () Source
Storable CUChar |
Methods sizeOf :: CUChar -> Int Source alignment :: CUChar -> Int Source peekElemOff :: Ptr CUChar -> Int -> IO CUChar Source pokeElemOff :: Ptr CUChar -> Int -> CUChar -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUChar Source pokeByteOff :: Ptr b -> Int -> CUChar -> IO () Source peek :: Ptr CUChar -> IO CUChar Source poke :: Ptr CUChar -> CUChar -> IO () Source
Storable CSChar |
Methods sizeOf :: CSChar -> Int Source alignment :: CSChar -> Int Source peekElemOff :: Ptr CSChar -> Int -> IO CSChar Source pokeElemOff :: Ptr CSChar -> Int -> CSChar -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSChar Source pokeByteOff :: Ptr b -> Int -> CSChar -> IO () Source peek :: Ptr CSChar -> IO CSChar Source poke :: Ptr CSChar -> CSChar -> IO () Source
Storable CChar |
Methods sizeOf :: CChar -> Int Source alignment :: CChar -> Int Source peekElemOff :: Ptr CChar -> Int -> IO CChar Source pokeElemOff :: Ptr CChar -> Int -> CChar -> IO () Source peekByteOff :: Ptr b -> Int -> IO CChar Source pokeByteOff :: Ptr b -> Int -> CChar -> IO () Source peek :: Ptr CChar -> IO CChar Source poke :: Ptr CChar -> CChar -> IO () Source
Storable IntPtr |
Methods sizeOf :: IntPtr -> Int Source alignment :: IntPtr -> Int Source peekElemOff :: Ptr IntPtr -> Int -> IO IntPtr Source pokeElemOff :: Ptr IntPtr -> Int -> IntPtr -> IO () Source peekByteOff :: Ptr b -> Int -> IO IntPtr Source pokeByteOff :: Ptr b -> Int -> IntPtr -> IO () Source peek :: Ptr IntPtr -> IO IntPtr Source poke :: Ptr IntPtr -> IntPtr -> IO () Source
Storable WordPtr |
Methods sizeOf :: WordPtr -> Int Source alignment :: WordPtr -> Int Source peekElemOff :: Ptr WordPtr -> Int -> IO WordPtr Source pokeElemOff :: Ptr WordPtr -> Int -> WordPtr -> IO () Source peekByteOff :: Ptr b -> Int -> IO WordPtr Source pokeByteOff :: Ptr b -> Int -> WordPtr -> IO () Source peek :: Ptr WordPtr -> IO WordPtr Source poke :: Ptr WordPtr -> WordPtr -> IO () Source
Storable Fd |
Methods sizeOf :: Fd -> Int Source alignment :: Fd -> Int Source peekElemOff :: Ptr Fd -> Int -> IO Fd Source pokeElemOff :: Ptr Fd -> Int -> Fd -> IO () Source peekByteOff :: Ptr b -> Int -> IO Fd Source pokeByteOff :: Ptr b -> Int -> Fd -> IO () Source peek :: Ptr Fd -> IO Fd Source poke :: Ptr Fd -> Fd -> IO () Source
Storable CRLim |
Methods sizeOf :: CRLim -> Int Source alignment :: CRLim -> Int Source peekElemOff :: Ptr CRLim -> Int -> IO CRLim Source pokeElemOff :: Ptr CRLim -> Int -> CRLim -> IO () Source peekByteOff :: Ptr b -> Int -> IO CRLim Source pokeByteOff :: Ptr b -> Int -> CRLim -> IO () Source peek :: Ptr CRLim -> IO CRLim Source poke :: Ptr CRLim -> CRLim -> IO () Source
Storable CTcflag |
Methods sizeOf :: CTcflag -> Int Source alignment :: CTcflag -> Int Source peekElemOff :: Ptr CTcflag -> Int -> IO CTcflag Source pokeElemOff :: Ptr CTcflag -> Int -> CTcflag -> IO () Source peekByteOff :: Ptr b -> Int -> IO CTcflag Source pokeByteOff :: Ptr b -> Int -> CTcflag -> IO () Source peek :: Ptr CTcflag -> IO CTcflag Source poke :: Ptr CTcflag -> CTcflag -> IO () Source
Storable CSpeed |
Methods sizeOf :: CSpeed -> Int Source alignment :: CSpeed -> Int Source peekElemOff :: Ptr CSpeed -> Int -> IO CSpeed Source pokeElemOff :: Ptr CSpeed -> Int -> CSpeed -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSpeed Source pokeByteOff :: Ptr b -> Int -> CSpeed -> IO () Source peek :: Ptr CSpeed -> IO CSpeed Source poke :: Ptr CSpeed -> CSpeed -> IO () Source
Storable CCc |
Methods sizeOf :: CCc -> Int Source alignment :: CCc -> Int Source peekElemOff :: Ptr CCc -> Int -> IO CCc Source pokeElemOff :: Ptr CCc -> Int -> CCc -> IO () Source peekByteOff :: Ptr b -> Int -> IO CCc Source pokeByteOff :: Ptr b -> Int -> CCc -> IO () Source peek :: Ptr CCc -> IO CCc Source poke :: Ptr CCc -> CCc -> IO () Source
Storable CUid |
Methods sizeOf :: CUid -> Int Source alignment :: CUid -> Int Source peekElemOff :: Ptr CUid -> Int -> IO CUid Source pokeElemOff :: Ptr CUid -> Int -> CUid -> IO () Source peekByteOff :: Ptr b -> Int -> IO CUid Source pokeByteOff :: Ptr b -> Int -> CUid -> IO () Source peek :: Ptr CUid -> IO CUid Source poke :: Ptr CUid -> CUid -> IO () Source
Storable CNlink |
Methods sizeOf :: CNlink -> Int Source alignment :: CNlink -> Int Source peekElemOff :: Ptr CNlink -> Int -> IO CNlink Source pokeElemOff :: Ptr CNlink -> Int -> CNlink -> IO () Source peekByteOff :: Ptr b -> Int -> IO CNlink Source pokeByteOff :: Ptr b -> Int -> CNlink -> IO () Source peek :: Ptr CNlink -> IO CNlink Source poke :: Ptr CNlink -> CNlink -> IO () Source
Storable CGid |
Methods sizeOf :: CGid -> Int Source alignment :: CGid -> Int Source peekElemOff :: Ptr CGid -> Int -> IO CGid Source pokeElemOff :: Ptr CGid -> Int -> CGid -> IO () Source peekByteOff :: Ptr b -> Int -> IO CGid Source pokeByteOff :: Ptr b -> Int -> CGid -> IO () Source peek :: Ptr CGid -> IO CGid Source poke :: Ptr CGid -> CGid -> IO () Source
Storable CSsize |
Methods sizeOf :: CSsize -> Int Source alignment :: CSsize -> Int Source peekElemOff :: Ptr CSsize -> Int -> IO CSsize Source pokeElemOff :: Ptr CSsize -> Int -> CSsize -> IO () Source peekByteOff :: Ptr b -> Int -> IO CSsize Source pokeByteOff :: Ptr b -> Int -> CSsize -> IO () Source peek :: Ptr CSsize -> IO CSsize Source poke :: Ptr CSsize -> CSsize -> IO () Source
Storable CPid |
Methods sizeOf :: CPid -> Int Source alignment :: CPid -> Int Source peekElemOff :: Ptr CPid -> Int -> IO CPid Source pokeElemOff :: Ptr CPid -> Int -> CPid -> IO () Source peekByteOff :: Ptr b -> Int -> IO CPid Source pokeByteOff :: Ptr b -> Int -> CPid -> IO () Source peek :: Ptr CPid -> IO CPid Source poke :: Ptr CPid -> CPid -> IO () Source
Storable COff |
Methods sizeOf :: COff -> Int Source alignment :: COff -> Int Source peekElemOff :: Ptr COff -> Int -> IO COff Source pokeElemOff :: Ptr COff -> Int -> COff -> IO () Source peekByteOff :: Ptr b -> Int -> IO COff Source pokeByteOff :: Ptr b -> Int -> COff -> IO () Source peek :: Ptr COff -> IO COff Source poke :: Ptr COff -> COff -> IO () Source
Storable CMode |
Methods sizeOf :: CMode -> Int Source alignment :: CMode -> Int Source peekElemOff :: Ptr CMode -> Int -> IO CMode Source pokeElemOff :: Ptr CMode -> Int -> CMode -> IO () Source peekByteOff :: Ptr b -> Int -> IO CMode Source pokeByteOff :: Ptr b -> Int -> CMode -> IO () Source peek :: Ptr CMode -> IO CMode Source poke :: Ptr CMode -> CMode -> IO () Source
Storable CIno |
Methods sizeOf :: CIno -> Int Source alignment :: CIno -> Int Source peekElemOff :: Ptr CIno -> Int -> IO CIno Source pokeElemOff :: Ptr CIno -> Int -> CIno -> IO () Source peekByteOff :: Ptr b -> Int -> IO CIno Source pokeByteOff :: Ptr b -> Int -> CIno -> IO () Source peek :: Ptr CIno -> IO CIno Source poke :: Ptr CIno -> CIno -> IO () Source
Storable CDev |
Methods sizeOf :: CDev -> Int Source alignment :: CDev -> Int Source peekElemOff :: Ptr CDev -> Int -> IO CDev Source pokeElemOff :: Ptr CDev -> Int -> CDev -> IO () Source peekByteOff :: Ptr b -> Int -> IO CDev Source pokeByteOff :: Ptr b -> Int -> CDev -> IO () Source peek :: Ptr CDev -> IO CDev Source poke :: Ptr CDev -> CDev -> IO () Source
(Storable a, Integral a) => Storable (Ratio a) |
Methods sizeOf :: Ratio a -> Int Source alignment :: Ratio a -> Int Source peekElemOff :: Ptr (Ratio a) -> Int -> IO (Ratio a) Source pokeElemOff :: Ptr (Ratio a) -> Int -> Ratio a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Ratio a) Source pokeByteOff :: Ptr b -> Int -> Ratio a -> IO () Source peek :: Ptr (Ratio a) -> IO (Ratio a) Source poke :: Ptr (Ratio a) -> Ratio a -> IO () Source
Storable (StablePtr a) |
Methods sizeOf :: StablePtr a -> Int Source alignment :: StablePtr a -> Int Source peekElemOff :: Ptr (StablePtr a) -> Int -> IO (StablePtr a) Source pokeElemOff :: Ptr (StablePtr a) -> Int -> StablePtr a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (StablePtr a) Source pokeByteOff :: Ptr b -> Int -> StablePtr a -> IO () Source peek :: Ptr (StablePtr a) -> IO (StablePtr a) Source poke :: Ptr (StablePtr a) -> StablePtr a -> IO () Source
Storable (Ptr a) |
Methods sizeOf :: Ptr a -> Int Source alignment :: Ptr a -> Int Source peekElemOff :: Ptr (Ptr a) -> Int -> IO (Ptr a) Source pokeElemOff :: Ptr (Ptr a) -> Int -> Ptr a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Ptr a) Source pokeByteOff :: Ptr b -> Int -> Ptr a -> IO () Source peek :: Ptr (Ptr a) -> IO (Ptr a) Source poke :: Ptr (Ptr a) -> Ptr a -> IO () Source
Storable (FunPtr a) |
Methods sizeOf :: FunPtr a -> Int Source alignment :: FunPtr a -> Int Source peekElemOff :: Ptr (FunPtr a) -> Int -> IO (FunPtr a) Source pokeElemOff :: Ptr (FunPtr a) -> Int -> FunPtr a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (FunPtr a) Source pokeByteOff :: Ptr b -> Int -> FunPtr a -> IO () Source peek :: Ptr (FunPtr a) -> IO (FunPtr a) Source poke :: Ptr (FunPtr a) -> FunPtr a -> IO () Source
Storable a => Storable (Complex a) |
Methods sizeOf :: Complex a -> Int Source alignment :: Complex a -> Int Source peekElemOff :: Ptr (Complex a) -> Int -> IO (Complex a) Source pokeElemOff :: Ptr (Complex a) -> Int -> Complex a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Complex a) Source pokeByteOff :: Ptr b -> Int -> Complex a -> IO () Source peek :: Ptr (Complex a) -> IO (Complex a) Source poke :: Ptr (Complex a) -> Complex a -> IO () Source
Storable a => Storable (Identity a) |
Methods sizeOf :: Identity a -> Int Source alignment :: Identity a -> Int Source peekElemOff :: Ptr (Identity a) -> Int -> IO (Identity a) Source pokeElemOff :: Ptr (Identity a) -> Int -> Identity a -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Identity a) Source pokeByteOff :: Ptr b -> Int -> Identity a -> IO () Source peek :: Ptr (Identity a) -> IO (Identity a) Source poke :: Ptr (Identity a) -> Identity a -> IO () Source
Storable a => Storable (Const k a b) |
Methods sizeOf :: Const k a b -> Int Source alignment :: Const k a b -> Int Source peekElemOff :: Ptr (Const k a b) -> Int -> IO (Const k a b) Source pokeElemOff :: Ptr (Const k a b) -> Int -> Const k a b -> IO () Source peekByteOff :: Ptr b -> Int -> IO (Const k a b) Source pokeByteOff :: Ptr b -> Int -> Const k a b -> IO () Source peek :: Ptr (Const k a b) -> IO (Const k a b) Source poke :: Ptr (Const k a b) -> Const k a b -> IO () Source