ipc.inc 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. {$IFDEF OGC_INTERFACE}
  2. const
  3. IPC_HEAP = - 1;
  4. IPC_OPEN_NONE = 0;
  5. IPC_OPEN_READ = 1;
  6. IPC_OPEN_WRITE = 2;
  7. IPC_OPEN_RW = ( IPC_OPEN_READ or IPC_OPEN_WRITE );
  8. IPC_MAXPATH_LEN = 64;
  9. IPC_OK = 0;
  10. IPC_EINVAL = - 4;
  11. IPC_ENOHEAP = - 5;
  12. IPC_ENOENT = - 6;
  13. IPC_EQUEUEFULL = - 8;
  14. IPC_ENOMEM = - 22;
  15. type
  16. _ioctlv = record
  17. data : pointer;
  18. len : cuint32;
  19. end;
  20. ioctlv = _ioctlv;
  21. procedure __IPC_Reinitialize; cdecl; external;
  22. type
  23. ipccallback = function(result: cint32; usrdata: pointer): cint32; cdecl;
  24. function iosCreateHeap(size: cint32): cint32; cdecl; external;
  25. function iosAlloc(hid, size: cint32): pointer; cdecl; external;
  26. procedure iosFree(hid: cint32; ptr: pointer); cdecl; external;
  27. function IPC_GetBufferLo: pointer; cdecl; external;
  28. function IPC_GetBufferHi: pointer; cdecl; external;
  29. procedure IPC_SetBufferLo(bufferlo: pointer); cdecl; external;
  30. procedure IPC_SetBufferHi(bufferhi: pointer); cdecl; external;
  31. function IOS_Open(filepath: pcchar; mode: cuint32): cint32; cdecl; external;
  32. function IOS_OpenAsync(filepath: pcchar; mode: cuint32; ipc_cb: ipccallback;
  33. usrdata: pointer): cint32; cdecl; external;
  34. function IOS_Close(fd: cint32): cint32; cdecl; external;
  35. function IOS_CloseAsync(fd: cint32; ipc_cb: ipccallback; usrdata: pointer)
  36. : cint32; cdecl; external;
  37. function IOS_Seek(fd, where, whence: cint32): cint32; cdecl; external;
  38. function IOS_SeekAsync(fd, where, whence: cint32; ipc_cb: ipccallback;
  39. usrdata: pointer): cint32; cdecl; external;
  40. function IOS_Read(fd: cint32; buf: pointer; len: cint32): cint32; cdecl; external;
  41. function IOS_ReadAsync(fd: cint32; buf: pointer; len: cint32;
  42. ipc_cb: ipccallback; usrdata: pointer): cint32; cdecl; external;
  43. function IOS_Write(fd: cint32; buf: pointer; len: cint32): cint32; cdecl; external;
  44. function IOS_WriteAsync(fd: cint32; buf: pointer; len: cint32;
  45. ipc_cb: ipccallback; usrdata: pointer): cint32; cdecl; external;
  46. function IOS_Ioctl(fd, ioctl: cint32; buffer_in: pointer; len_in: cint32;
  47. buffer_io: pointer; len_io: cint32): cint32; cdecl; external;
  48. function IOS_IoctlAsync(fd, ioctl: cint32; buffer_in: pointer; len_in: cint32;
  49. buffer_io: pointer; len_io: cint32; ipc_cb: ipccallback; usrdata: pointer)
  50. : cint32; cdecl; external;
  51. type
  52. Pioctlv = ^ioctlv;
  53. function IOS_Ioctlv(fd, ioctl, cnt_in, cnt_io: cint32; argv: Pioctlv): cint32; cdecl; external;
  54. function IOS_IoctlvAsync(fd, ioctl, cnt_in, cnt_io: cint32; argv: Pioctlv;
  55. ipc_cb: ipccallback; usrdata: pointer): cint32; cdecl; external;
  56. function IOS_IoctlvFormat(hId, fd, ioctl: cint32; format: pcchar; par4: array of const)
  57. : cint32; cdecl; external;
  58. function IOS_IoctlvFormatAsync(hId, fd, ioctl: cint32; usr_cb: ipccallback;
  59. usr_data: pointer; format: pcchar; par6: array of const): cint32; cdecl; external;
  60. function IOS_IoctlvReboot(fd, ioctl, cnt_in, cnt_io: cint32; argv: Pioctlv)
  61. : cint32; cdecl; external;
  62. function IOS_IoctlvRebootBackground(fd, ioctl, cnt_in, cnt_io: cint32;
  63. argv: Pioctlv): cint32; cdecl; external;
  64. {$ENDIF}