Allocating aligned memory?
ringer9cs+ghc at gmail.com
Fri Mar 3 13:39:20 EST 2006
In GHC, how can I allocate a chunk of memory aligned to some block
size (say, 512 or 1024 bytes)? I tried to specify it in the
"alignment" method in the Storable typeclass, but that does not seem
to work. Is Storable.alignment really used in GHC? If so, is there a
code example that allocates aligned memory in this way?
For the moment I am using the C function memalign() like this:
foreign import ccall "static stdlib.h"
memalign :: CInt -> CInt -> IO (Ptr CChar)
do ptr <- memalign alignment size
fptr <- newForeignPtr finalizerFree ptr
Is it safe to do so?
More information about the Glasgow-haskell-users