Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |
---|
Lifts methods of the Storable
type class from Foreign.Storable
to
regional pointers.
- peekElemOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> Int -> cr α
- pokeElemOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> Int -> α -> cr ()
- peekByteOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr β pr -> Int -> cr α
- pokeByteOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr β pr -> Int -> α -> cr ()
- peek :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> cr α
- poke :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> α -> cr ()
Documentation
peekElemOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> Int -> cr α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.
Wraps: Foreign.Storable.
.
peekElemOff
pokeElemOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> Int -> α -> cr ()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
Wraps: Foreign.Storable.
.
pokeElemOff
peekByteOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr β pr -> Int -> cr α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)
Wraps: Foreign.Storable.
.
peekByteOff
pokeByteOff :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr β pr -> Int -> α -> cr ()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
Wraps: Foreign.Storable.
.
pokeByteOff
peek :: (ParentOf pr cr, Storable α, MonadIO cr) => RegionalPtr α pr -> cr α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.
Wraps: Foreign.Storable.
.
peek