summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/libogcfpc/src/ogc/lwp_threadq.inc
blob: 76e64bf9eecfba8f7632856527fdcaa9f53a2f7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

{$IFDEF OGC_INTERFACE}
const
  LWP_THREADQ_NOTIMEOUT = LWP_WD_NOTIMEOUT;

function __lwp_threadqueue_firstfifo(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

function __lwp_threadqueue_firstpriority(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

procedure __lwp_threadqueue_enqueuefifo(queue: Plwp_thrqueue;
  thethread: Plwp_cntrl; timeout: cuint64); cdecl; external;

function __lwp_threadqueue_dequeuefifo(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

procedure __lwp_threadqueue_enqueuepriority(queue: Plwp_thrqueue;
  thethread: Plwp_cntrl; timeout: cuint64); cdecl; external;

function __lwp_threadqueue_dequeuepriority(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

procedure __lwp_threadqueue_init(queue: Plwp_thrqueue;
  mode, state, timeout_state: cuint32); cdecl; external;

function __lwp_threadqueue_first(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

procedure __lwp_threadqueue_enqueue(queue: Plwp_thrqueue; timeout: cuint64); cdecl; external;

function __lwp_threadqueue_dequeue(queue: Plwp_thrqueue): Plwp_cntrl; cdecl; external;

procedure __lwp_threadqueue_flush(queue: Plwp_thrqueue; status: cuint32); cdecl; external;

procedure __lwp_threadqueue_extract(queue: Plwp_thrqueue; thethread: Plwp_cntrl); cdecl; external;

procedure __lwp_threadqueue_extractfifo(queue: Plwp_thrqueue;
  thethread: Plwp_cntrl); cdecl; external;

procedure __lwp_threadqueue_extractpriority(queue: Plwp_thrqueue;
  thethread: Plwp_cntrl); cdecl; external;

function __lwp_threadqueue_extractproxy(thethread: Plwp_cntrl): cuint32; cdecl; external;


//#ifdef LIBOGC_INTERNAL
//#include <libogc/lwp_threadq.inl>
//#endif

procedure __lwp_threadqueue_csenter(var queue: lwp_thrqueue); inline;
{$ENDIF}

{$IFDEF OGC_IMPLEMENTATION}
procedure __lwp_threadqueue_csenter(var queue: lwp_thrqueue); inline;
begin
  queue.sync_state := LWP_THREADQ_NOTHINGHAPPEND;
end;
{$ENDIF}