system.pp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. unit system;
  2. interface
  3. type
  4. integer = longint;
  5. hresult = integer;
  6. ttypekind = integer;
  7. filerec = integer;
  8. textrec = integer;
  9. pbyte = ^byte;
  10. pchar = ^Char;
  11. procedure fpc_lib_exit; compilerproc;
  12. procedure DebugWrite(const P: PChar);
  13. procedure DebugWriteChar(Ch: Char);
  14. implementation
  15. type
  16. P__wasi_size_t = ^__wasi_size_t;
  17. __wasi_size_t = longint;
  18. __wasi_fd_t = longint;
  19. size_t = longint;
  20. __wasi_errno_t = longint;
  21. P__wasi_ciovec_t = ^__wasi_ciovec_t;
  22. __wasi_ciovec_t = record
  23. buf: pointer;
  24. buf_len: __wasi_size_t;
  25. end;
  26. function fd_write(fd: __wasi_fd_t;
  27. iovs: P__wasi_ciovec_t;
  28. iovs_len: size_t;
  29. nwritten: P__wasi_size_t): __wasi_errno_t; external 'wasi_unstable';
  30. function StrLen(P: PChar): size_t;
  31. var
  32. i: size_t;
  33. begin
  34. i := 0;
  35. while p[i]<>#0 do
  36. Inc(i);
  37. StrLen := i;
  38. end;
  39. procedure DebugWrite(const P: PChar);
  40. var
  41. our_iov: __wasi_ciovec_t;
  42. our_nwritten: longint;
  43. begin
  44. our_iov.buf := P;
  45. our_iov.buf_len := StrLen(P);
  46. fd_write(1, @our_iov, 1, @our_nwritten);
  47. end;
  48. procedure DebugWriteChar(Ch: Char);
  49. var
  50. CharArr: array [0..1] of Char;
  51. begin
  52. CharArr[0] := Ch;
  53. CharArr[1] := #0;
  54. DebugWrite(@CharArr);
  55. end;
  56. procedure fpc_lib_exit; compilerproc;
  57. begin
  58. end;
  59. end.