@@ -30,20 +30,30 @@ alloc t = return $ CPt !(malloc (sizeOf t)) 0 t
30free : CPtr -> IO ()
30free : CPtr -> IO ()
31free (CPt p _ _) = mfree p
31free (CPt p _ _) = mfree p
33+withAlloc : CType -> (CPtr -> IO ()) -> IO ()
34+withAlloc t f = do m <- alloc t
40+(~~>) : CType -> (CPtr -> IO ()) -> IO ()
33ctype : CPtr -> CType
43ctype : CPtr -> CType
34ctype (CPt _ _ t) = t
44ctype (CPt _ _ t) = t
36− peekArray : (c : CPtr) -> IO (translate (ctype c))
46+ -- peekArray : (c : CPtr) -> IO (translate (ctype c))
37− peekArray (CPt p o a@(ARRAY n t)) = do
47+ -- peekArray (CPt p o a@(ARRAY n t)) = do
38− os <- return $ fromList (offsets a)
48+ -- os <- return $ fromList (offsets a)
39− return $ map (\x => peek (CPt p x t)) os
49+ -- map (\x => peek (CPt p x t)) os
41− pokeArray : (c : CPtr) -> translate (ctype c) -> IO ()
51+ -- pokeArray : (c : CPtr) -> translate (ctype c) -> IO ()
42− pokeArray (CPt p o a@(ARRAY n t)) x = do
52+ -- pokeArray (CPt p o a@(ARRAY n t)) x = do
43− os <- fromList $ offsets a
53+ -- os <- fromList $ offsets a
44− ox <- zip os x
54+ -- ox <- zip os x
45− map (\(x, y)=>poke (CPt p x t) y) ox
55+ -- map (\(x, y)=>poke (CPt p x t) y) ox
46− return ()
56+ -- return ()
48 peek : (p : CPtr) -> IO (translate (ctype p))
58 peek : (p : CPtr) -> IO (translate (ctype p))
49 peek (CPt p o I8) = prim_peek8 p o
59 peek (CPt p o I8) = prim_peek8 p o
@@ -53,7 +63,7 @@ mutual
53 peek (CPt p o FLOAT) = prim_peekSingle p o
63 peek (CPt p o FLOAT) = prim_peekSingle p o
54 peek (CPt p o DOUBLE) = prim_peekDouble p o
64 peek (CPt p o DOUBLE) = prim_peekDouble p o
55 peek (CPt p o PTR) = prim_peekPtr p o
65 peek (CPt p o PTR) = prim_peekPtr p o
56− peek cp@(CPt p o (ARRAY n t)) = peekArray cp
66+ -- peek cp@(CPt p o (ARRAY n t)) = peekArray cp
57 -- peek (CPt p o (UNION xs)) = ?peekUnion
67 -- peek (CPt p o (UNION xs)) = ?peekUnion
58 -- peek (CPt p o (STRUCT xs)) = ?peekStruct
68 -- peek (CPt p o (STRUCT xs)) = ?peekStruct
59 -- peek (CPt p o (PACKEDSTRUCT xs)) = ?peekPacked
69 -- peek (CPt p o (PACKEDSTRUCT xs)) = ?peekPacked
@@ -74,7 +84,7 @@ mutual
75 poke (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
85 poke (CPt p o DOUBLE) x = do _ <- prim_pokeDouble p o x
77− poke cp@(CPt p o (ARRAY n t)) x = pokeArray cp x
87+ -- poke cp@(CPt p o (ARRAY n t)) x = pokeArray cp x
78 -- poke (CPt p o (UNION xs)) x = ?pokeUnion
88 -- poke (CPt p o (UNION xs)) x = ?pokeUnion
79 -- poke (CPt p o (STRUCT xs)) x = ?pokeStruct
89 -- poke (CPt p o (STRUCT xs)) x = ?pokeStruct
80 -- poke (CPt p o (PACKEDSTRUCT xs)) x = ?pokePacked
90 -- poke (CPt p o (PACKEDSTRUCT xs)) x = ?pokePacked