5 This library provides machine addresses and is primarily intended for
6 use in creating foreign function interfaces using GreenCard.
10 data Addr -- Address type
14 plusAddr :: Addr -> Int -> Addr
16 -- read value out of _immutable_ memory
17 indexCharOffAddr :: Addr -> Int -> Char
18 indexIntOffAddr :: Addr -> Int -> Int -- should we drop this?
19 indexAddrOffAddr :: Addr -> Int -> Addr
20 indexFloatOffAddr :: Addr -> Int -> Float
21 indexDoubleOffAddr :: Addr -> Int -> Double
22 indexWord8OffAddr :: Addr -> Int -> Word8
23 indexWord16OffAddr :: Addr -> Int -> Word16
24 indexWord32OffAddr :: Addr -> Int -> Word32
25 indexWord64OffAddr :: Addr -> Int -> Word64
26 indexInt8OffAddr :: Addr -> Int -> Int8
27 indexInt16OffAddr :: Addr -> Int -> Int16
28 indexInt32OffAddr :: Addr -> Int -> Int32
29 indexInt64OffAddr :: Addr -> Int -> Int64
31 -- read value out of mutable memory
32 readCharOffAddr :: Addr -> Int -> IO Char
33 readIntOffAddr :: Addr -> Int -> IO Int -- should we drop this?
34 readAddrOffAddr :: Addr -> Int -> IO Addr
35 readFloatOffAddr :: Addr -> Int -> IO Float
36 readDoubleOffAddr :: Addr -> Int -> IO Double
37 readWord8OffAddr :: Addr -> Int -> IO Word8
38 readWord16OffAddr :: Addr -> Int -> IO Word16
39 readWord32OffAddr :: Addr -> Int -> IO Word32
40 readWord64OffAddr :: Addr -> Int -> IO Word64
41 readInt8OffAddr :: Addr -> Int -> IO Int8
42 readInt16OffAddr :: Addr -> Int -> IO Int16
43 readInt32OffAddr :: Addr -> Int -> IO Int32
44 readInt64OffAddr :: Addr -> Int -> IO Int64
46 -- write value into mutable memory
47 writeCharOffAddr :: Addr -> Int -> Char -> IO ()
48 writeIntOffAddr :: Addr -> Int -> Int -> IO () -- should we drop this?
49 writeAddrOffAddr :: Addr -> Int -> Addr -> IO ()
50 writeForeignObjOffAddr :: Addr -> Int -> ForeignObj -> IO ()
51 writeFloatOffAddr :: Addr -> Int -> Float -> IO ()
52 writeDoubleOffAddr :: Addr -> Int -> Double -> IO ()
53 writeWord8OffAddr :: Addr -> Int -> Word8 -> IO ()
54 writeWord16OffAddr :: Addr -> Int -> Word16 -> IO ()
55 writeWord32OffAddr :: Addr -> Int -> Word32 -> IO ()
56 writeWord64OffAddr :: Addr -> Int -> Word64 -> IO ()
57 writeInt8OffAddr :: Addr -> Int -> Int8 -> IO ()
58 writeInt16OffAddr :: Addr -> Int -> Int16 -> IO ()
59 writeInt32OffAddr :: Addr -> Int -> Int32 -> IO ()
60 writeInt64OffAddr :: Addr -> Int -> Int64 -> IO ()
63 Hugs provides <tt/Addr/ and <tt/nullAddr/ but does not provide any of
64 the index, read or write functions. They can be implemented using
65 GreenCard if required.