Foreign.ForeignPtr.Aligned
Description
A properly aligned ForeignPtr type. This can be currently achieved only by wasting some bytes.
- data AlignedForeignPtr a
- data Alignment
- align :: Int -> Alignment
- fromAlignment :: Alignment -> Int
- mallocAlignedForeignPtr :: Storable a => Alignment -> IO (AlignedForeignPtr a)
- mallocAlignedForeignPtrArray :: Storable a => Alignment -> Int -> IO (AlignedForeignPtr a)
- mallocAlignedForeignPtrBytes :: Alignment -> Int -> IO (AlignedForeignPtr a)
- withAlignedForeignPtr :: AlignedForeignPtr a -> (Ptr a -> IO b) -> IO b
- finalizeAlignedForeignPtr :: AlignedForeignPtr a -> IO ()
- touchAlignedForeignPtr :: AlignedForeignPtr a -> IO ()
- castAlignedForeignPtr :: AlignedForeignPtr a -> AlignedForeignPtr b
Documentation
align :: Int -> AlignmentSource
A "smart" constructor which checks whether the input is a power of two.
fromAlignment :: Alignment -> IntSource
mallocAlignedForeignPtr :: Storable a => Alignment -> IO (AlignedForeignPtr a)Source
mallocAlignedForeignPtrArray :: Storable a => Alignment -> Int -> IO (AlignedForeignPtr a)Source
mallocAlignedForeignPtrBytes :: Alignment -> Int -> IO (AlignedForeignPtr a)Source
withAlignedForeignPtr :: AlignedForeignPtr a -> (Ptr a -> IO b) -> IO bSource