Haskell bindings

These Haskell bindings make large use of c2hs to generate much of the code, so
Unicorn's const_generator is not used.

The emulator is based on the Either monad transformer. The IO monad is used to
run the underlying Unicorn library, while the Either monad is used to handle
errors.

Instructions on how to build the bindings are located in
bindings/haskell/README.TXT. The same samples found in samples/ can be found
in bindings/haskell/samples. They should produce the same output, with slight
differences in their error handling and messaging.
This commit is contained in:
Adrian Herrera
2016-04-06 09:21:36 +10:00
parent affe94d5fe
commit 74aaf3b321
28 changed files with 2994 additions and 1 deletions

View File

@ -0,0 +1,16 @@
#ifndef UNICORN_WRAPPER_H
#define UNICORN_WRAPPER_H
#include <unicorn/unicorn.h>
/*
* Wrap Unicorn's uc_close function and ignore the returned error code.
*/
void uc_close_wrapper(uc_engine *uc);
/*
* Doesn't actually do anything.
*/
void uc_close_dummy(uc_engine *uc);
#endif