ffi-import.c 501 B

1234567891011121314151617181920212223
  1. #include "export.h"
  2. Int32 FFI_INT = 13;
  3. Word32 FFI_WORD = 0xFF;
  4. Bool FFI_BOOL = 1;
  5. Real64 FFI_REAL = 3.14159;
  6. Char8 ffi (Pointer a1, Int32 a1len, Pointer a2, Pointer a3, Int32 n) {
  7. double *ds = (double*)a1;
  8. int *pi = (int*)a2;
  9. char *pc = (char*)a3;
  10. int i;
  11. double sum;
  12. sum = 0.0;
  13. for (i = 0; i < a1len; ++i) {
  14. sum += ds[i];
  15. ds[i] += n;
  16. }
  17. *pi = (int)sum;
  18. *pc = 'c';
  19. return 'c';
  20. }