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
15 plusAddr :: Addr -> Int -> Addr
17 -- read value out of _immutable_ memory
18 indexCharOffAddr :: Addr -> Int -> Char
19 indexIntOffAddr :: Addr -> Int -> Int
20 indexAddrOffAddr :: Addr -> Int -> Addr
21 indexFloatOffAddr :: Addr -> Int -> Float
22 indexDoubleOffAddr :: Addr -> Int -> Double
23 indexWord8OffAddr :: Addr -> Int -> Word8
24 indexWord16OffAddr :: Addr -> Int -> Word16
25 indexWord32OffAddr :: Addr -> Int -> Word32
26 indexWord64OffAddr :: Addr -> Int -> Word64
27 indexInt8OffAddr :: Addr -> Int -> Int8
28 indexInt16OffAddr :: Addr -> Int -> Int16
29 indexInt32OffAddr :: Addr -> Int -> Int32
30 indexInt64OffAddr :: Addr -> Int -> Int64
32 -- read value out of mutable memory
33 readCharOffAddr :: Addr -> Int -> IO Char
34 readIntOffAddr :: Addr -> Int -> IO Int
35 readAddrOffAddr :: Addr -> Int -> IO Addr
36 readFloatOffAddr :: Addr -> Int -> IO Float
37 readDoubleOffAddr :: Addr -> Int -> IO Double
38 readWord8OffAddr :: Addr -> Int -> IO Word8
39 readWord16OffAddr :: Addr -> Int -> IO Word16
40 readWord32OffAddr :: Addr -> Int -> IO Word32
41 readWord64OffAddr :: Addr -> Int -> IO Word64
42 readInt8OffAddr :: Addr -> Int -> IO Int8
43 readInt16OffAddr :: Addr -> Int -> IO Int16
44 readInt32OffAddr :: Addr -> Int -> IO Int32
45 readInt64OffAddr :: Addr -> Int -> IO Int64
47 -- write value into mutable memory
48 writeCharOffAddr :: Addr -> Int -> Char -> IO ()
49 writeIntOffAddr :: Addr -> Int -> Int -> IO ()
50 writeAddrOffAddr :: Addr -> Int -> Addr -> IO ()
51 writeForeignObjOffAddr :: Addr -> Int -> ForeignObj -> IO ()
52 writeFloatOffAddr :: Addr -> Int -> Float -> IO ()
53 writeDoubleOffAddr :: Addr -> Int -> Double -> IO ()
54 writeWord8OffAddr :: Addr -> Int -> Word8 -> IO ()
55 writeWord16OffAddr :: Addr -> Int -> Word16 -> IO ()
56 writeWord32OffAddr :: Addr -> Int -> Word32 -> IO ()
57 writeWord64OffAddr :: Addr -> Int -> Word64 -> IO ()
58 writeInt8OffAddr :: Addr -> Int -> Int8 -> IO ()
59 writeInt16OffAddr :: Addr -> Int -> Int16 -> IO ()
60 writeInt32OffAddr :: Addr -> Int -> Int32 -> IO ()
61 writeInt64OffAddr :: Addr -> Int -> Int64 -> IO ()
64 Hugs provides <tt/Addr/ and <tt/nullAddr/ but does not provide any of
65 the index, read or write functions. They can be implemented using
66 GreenCard if required.