Following is a fragment generated by hsc2hs from LockedMem.hsc: #line 93 "LockedMem.hsc" hsc_const (MCL_CURRENTandFUTURE); hsc_fputs (")\n" "", hsc_stdout()); hsc_line (94, "LockedMem.hsc"); hsc_fputs ("\n" "foreign import ccall unsafe \"sys/mman.h mlockall\"\n" " c_mlockall :: CInt -> IO CInt\n" "\n" "\n" "-- | unlock all mapped pages of a process!\n" "unlockAllMemory :: IO () \n" "unlockAllMemory = do\n" " throwErrnoIfMinus1 \"unlockAllMemory\" (c_munlockall)\n" " return ()\n" "\n" "foreign import ccall unsafe \"sys/mman.h munlockall\"\n" " c_munlockall :: IO CInt\n" "", hsc_stdout()); return 0; On Mon, Sep 8, 2014 at 2:11 AM, Vasili I. Galchin <vigalchin@gmail.com> wrote:
Hello,
I need memory refreshing about FFI because I need to fix a bug (plus I got down a rat hole because of Ukraine war :-(). Following a snippet of something I wrote:
-- | lock all of the memory space of a process lockAllMemory :: LockAllFlags -> IO () lockAllMemory flags = do throwErrnoIfMinus1 "lockAllMemory" (c_mlockall cflags) return () where cflags = case flags of CURRENT -> (#const MCL_CURRENT) FUTURE -> (#const MCL_FUTURE) CURRENTandFUTURE -> (#const MCL_CURRENTandFUTURE)
it is a file called LockedMem.hsc and the third arm CURRENTandFUTURE I just added to fix the this bug ..
MCL_CURRENTandFUTURE ends up in LockedMem_make.c(sp??) but I get a undeclared nasty message when I try to build LockedMem.hsc... my bad... . Please help so I can go back to help Ukraine.
Kind regarsd,
Vasya