/packages/libogcfpc/src/ogc/lwp.inc

https://github.com/slibre/freepascal · Pascal · 52 lines · 30 code · 20 blank · 2 comment · 0 complexity · 4f16aa1b53450a5da360b8afa9804756 MD5 · raw file

  1. {$IFDEF OGC_INTERFACE}
  2. const
  3. LWP_CLOSED = - 1;
  4. LWP_SUCCESSFUL = 0;
  5. LWP_ALREADY_SUSPENDED = 1;
  6. LWP_NOT_SUSPENDED = 2;
  7. LWP_PRIO_IDLE = 0;
  8. LWP_PRIO_HIGHEST = 127;
  9. LWP_THREAD_NULL = $ffffffff;
  10. LWP_TQUEUE_NULL = $ffffffff;
  11. type
  12. lwp_t = cuint32;
  13. Plwp_t = ^lwp_t;
  14. lwpq_t = cuint32;
  15. Plwpq_t = ^lwpq_t;
  16. TAuxCallback = function(par0: pointer): pointer; cdecl;
  17. function LWP_CreateThread(thethread: Plwp_t; entry: TAuxCallback;
  18. arg, stackbase: pointer; stack_size: cuint32; prio: cuint8): cint32; cdecl; external;
  19. function LWP_SuspendThread(thethread: lwp_t): cint32; cdecl; external;
  20. function LWP_ResumeThread(thethread: lwp_t): cint32; cdecl; external;
  21. function LWP_ThreadIsSuspended(thethread: lwp_t): cbool; cdecl; external;
  22. function LWP_GetSelf: lwp_t; cdecl; external;
  23. procedure LWP_SetThreadPriority(thethread: lwp_t; prio: cuint32); cdecl; external;
  24. procedure LWP_YieldThread; cdecl; external;
  25. procedure LWP_Reschedule(prio: cuint32); cdecl; external;
  26. function LWP_JoinThread(thethread: lwp_t; value_ptr: Ppointer): cint32; cdecl; external;
  27. function LWP_InitQueue(thequeue: Plwpq_t): cint32; cdecl; external;
  28. procedure LWP_CloseQueue(thequeue: lwpq_t); cdecl; external;
  29. function LWP_ThreadSleep(thequeue: lwpq_t): cint32; cdecl; external;
  30. procedure LWP_ThreadSignal(thequeue: lwpq_t); cdecl; external;
  31. procedure LWP_ThreadBroadcast(thequeue: lwpq_t); cdecl; external;
  32. {$ENDIF OGC_INTERFACE}