@@ -10,6 +10,12 @@ import CFFI.Types
1010
1111data CPtr = CPt Ptr Int CType
1212
13+implicit decayCPtr : CPtr -> Ptr
14+decayCPtr (CPt p _ _) = p
15+
16+Show CPtr where
17+ show (CPt _ os t) = "CPtr ptr " ++ show os ++ " " ++ show t
18+
1319malloc : Int -> IO Ptr
1420malloc size = foreign FFI_C "malloc" (Int -> IO Ptr) size
1521
@@ -34,10 +40,10 @@ get (CPt p o I64) = prim_peek64 p o
3440get (CPt p o FLOAT) = prim_peekSingle p o
3541get (CPt p o DOUBLE) = prim_peekDouble p o
3642get (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
43+-- get (CPt p o (ARRAY n t)) = ?getArray
44+-- get (CPt p o (UNION xs)) = ?getUnion
45+-- get (CPt p o (STRUCT xs)) = ?getStruct
46+-- get (CPt p o (PACKEDSTRUCT xs)) = ?getPacked
4147
4248
4349put : (p : CPtr) -> (translate (ctype p)) -> IO ()
@@ -55,10 +61,10 @@ put (CPt p o FLOAT) x = do _ <- prim_pokeSingle p o x
5561 return ()
5662put (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
5763 return ()
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
64+-- put (CPt p o (ARRAY n t)) x = ?putArray
65+-- put (CPt p o (UNION xs)) x = ?putUnion
66+-- put (CPt p o (STRUCT xs)) x = ?putStruct
67+-- put (CPt p o (PACKEDSTRUCT xs)) x = ?putPacked
6268
6369-- update : (p : CPtr) -> ((translate(ctype p)) -> (translate (ctype p)) -> IO ()
6470-- TODO : Fix bounds checking