@@ -10,6 +10,12 @@ import CFFI.Types
11data CPtr = CPt Ptr Int CType
11data CPtr = CPt Ptr Int CType
13+implicit decayCPtr : CPtr -> Ptr
14+decayCPtr (CPt p _ _) = p
17+ show (CPt _ os t) = "CPtr ptr " ++ show os ++ " " ++ show t
13malloc : Int -> IO Ptr
19malloc : Int -> IO Ptr
14malloc size = foreign FFI_C "malloc" (Int -> IO Ptr) size
20malloc size = foreign FFI_C "malloc" (Int -> IO Ptr) size
@@ -34,10 +40,10 @@ get (CPt p o I64) = prim_peek64 p o
34get (CPt p o FLOAT) = prim_peekSingle p o
40get (CPt p o FLOAT) = prim_peekSingle p o
35get (CPt p o DOUBLE) = prim_peekDouble p o
41get (CPt p o DOUBLE) = prim_peekDouble p o
36get (CPt p o PTR) = prim_peekPtr p o
42get (CPt p o PTR) = prim_peekPtr p o
37−get (CPt p o (ARRAY n t)) = ?getArray
43+-- get (CPt p o (ARRAY n t)) = ?getArray
38−get (CPt p o (UNION xs)) = ?getUnion
44+-- get (CPt p o (UNION xs)) = ?getUnion
39−get (CPt p o (STRUCT xs)) = ?getStruct
45+-- get (CPt p o (STRUCT xs)) = ?getStruct
40−get (CPt p o (PACKEDSTRUCT xs)) = ?getPacked
46+-- get (CPt p o (PACKEDSTRUCT xs)) = ?getPacked
43put : (p : CPtr) -> (translate (ctype p)) -> IO ()
49put : (p : CPtr) -> (translate (ctype p)) -> IO ()
@@ -55,10 +61,10 @@ put (CPt p o FLOAT) x = do _ <- prim_pokeSingle p o x
56put (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
62put (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
58−put (CPt p o (ARRAY n t)) x = ?putArray
64+-- put (CPt p o (ARRAY n t)) x = ?putArray
59−put (CPt p o (UNION xs)) x = ?putUnion
65+-- put (CPt p o (UNION xs)) x = ?putUnion
60−put (CPt p o (STRUCT xs)) x = ?putStruct
66+-- put (CPt p o (STRUCT xs)) x = ?putStruct
61−put (CPt p o (PACKEDSTRUCT xs)) x = ?putPacked
67+-- put (CPt p o (PACKEDSTRUCT xs)) x = ?putPacked
63-- update : (p : CPtr) -> ((translate(ctype p)) -> (translate (ctype p)) -> IO ()
69-- update : (p : CPtr) -> ((translate(ctype p)) -> (translate (ctype p)) -> IO ()
64-- TODO : Fix bounds checking
70-- TODO : Fix bounds checking