#include "ffi_platypus.h"

unsigned char
my_foo(void)
{
  return 0xaa;
}

int
dlmain(int argc, char *argv[])
{
  ffi_cif cif;
  ffi_type *args[1];
  void *values[1];
  unsigned char bytes[4] = { 0x00, 0x00, 0x00, 0x00 };

  if(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_uint8, args) ==FFI_OK)
  {
    ffi_call(&cif, (void *) my_foo, &bytes, values);
    if(bytes[3] == 0xaa)
    {
      return 0;
    }
  }

  return 2;
}