@@ -25,6 +25,7 @@ free (CPt p _ _) = mfree p
25ctype : CPtr -> CType
25ctype : CPtr -> CType
26ctype (CPt _ _ t) = t
26ctype (CPt _ _ t) = t
28get : (p : CPtr) -> IO (translate (ctype p))
29get : (p : CPtr) -> IO (translate (ctype p))
29get (CPt p o I8) = prim_peek8 p o
30get (CPt p o I8) = prim_peek8 p o
30get (CPt p o I16) = prim_peek16 p o
31get (CPt p o I16) = prim_peek16 p o
@@ -33,10 +34,31 @@ get (CPt p o I64) = prim_peek64 p o
33get (CPt p o FLOAT) = prim_peekSingle p o
34get (CPt p o FLOAT) = prim_peekSingle p o
34get (CPt p o DOUBLE) = prim_peekDouble p o
35get (CPt p o DOUBLE) = prim_peekDouble p o
35get (CPt p o PTR) = prim_peekPtr p o
36get (CPt p o PTR) = prim_peekPtr p o
37+get (CPt p o (ARRAY n t)) = ?getArray
38+get (CPt p o (UNION xs)) = ?getUnion
39+get (CPt p o (STRUCT xs)) = ?getStruct
40+get (CPt p o (PACKEDSTRUCT xs)) = ?getPacked
38put : (p : CPtr) -> (translate (ctype p)) -> IO ()
43put : (p : CPtr) -> (translate (ctype p)) -> IO ()
39−put _ _ = putStrLn "putting"
44+put (CPt p o I8) x = do _ <- prim_poke8 p o x
46+put (CPt p o I16) x = do _ <- prim_poke16 p o x
48+put (CPt p o I32) x = do _ <- prim_poke32 p o x
50+put (CPt p o I64) x = do _ <- prim_poke64 p o x
52+put (CPt p o PTR) x = do _ <- prim_pokePtr p o x
54+put (CPt p o FLOAT) x = do _ <- prim_pokeSingle p o x
56+put (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
58+put (CPt p o (ARRAY n t)) x = ?putArray
59+put (CPt p o (UNION xs)) x = ?putUnion
60+put (CPt p o (STRUCT xs)) x = ?putStruct
61+put (CPt p o (PACKEDSTRUCT xs)) x = ?putPacked
41-- update : (p : CPtr) -> ((translate(ctype p)) -> (translate (ctype p)) -> IO ()
63-- update : (p : CPtr) -> ((translate(ctype p)) -> (translate (ctype p)) -> IO ()
42-- TODO : Fix bounds checking
64-- TODO : Fix bounds checking