|
Data.Primitive.Addr | Portability | non-portable | Maintainer | Roman Leshchinskiy <rl@cse.unsw.edu.au> |
|
|
|
Description |
Primitive operations on machine addresses
|
|
Synopsis |
|
|
|
Documentation |
|
data Addr |
A machine address
| Constructors | | Instances | |
|
|
nullAddr :: Addr |
The null address
|
|
plusAddr :: Addr -> Int -> Addr |
Offset an address by the given number of bytes
|
|
minusAddr :: Addr -> Addr -> Int |
Distance in bytes between two addresses. The result is only valid if the
difference fits in an Int.
|
|
remAddr :: Addr -> Int -> Int |
|
indexOffAddr :: Prim a => Addr -> Int -> a |
Read a value from a memory position given by an address and an offset.
The memory block the address refers to must be immutable. The offset is in
elements of type a rather than in bytes.
|
|
readOffAddr :: (Prim a, PrimMonad m) => Addr -> Int -> m a |
Read a value from a memory position given by an address and an offset.
The offset is in elements of type a rather than in bytes.
|
|
writeOffAddr :: (Prim a, PrimMonad m) => Addr -> Int -> a -> m () |
Write a value to a memory position given by an address and an offset.
The offset is in elements of type a rather than in bytes.
|
|
memcpyAddr :: PrimMonad m => Addr -> Addr -> Int -> m () |
|
Produced by Haddock version 2.7.2 |