5 #include <lwp_threadq.h>
7 #define LWP_SEMA_MODEFIFO 0
8 #define LWP_SEMA_MODEPRIORITY 1
10 #define LWP_SEMA_SUCCESSFUL 0
11 #define LWP_SEMA_UNSATISFIED_NOWAIT 1
12 #define LWP_SEMA_DELETED 2
13 #define LWP_SEMA_TIMEOUT 3
14 #define LWP_SEMA_MAXCNT_EXCEEDED 4
20 typedef struct _lwpsemattr
{
25 typedef struct _lwpsema
{
26 lwp_thrqueue wait_queue
;
31 void __lwp_sema_initialize(lwp_sema
*sema
,lwp_semattr
*attrs
,u32 init_count
);
32 u32
__lwp_sema_surrender(lwp_sema
*sema
,u32 id
);
33 u32
__lwp_sema_seize(lwp_sema
*sema
,u32 id
,u32 wait
,u64 timeout
);
34 void __lwp_sema_flush(lwp_sema
*sema
,u32 status
);
36 #ifdef LIBOGC_INTERNAL
37 #include <libogc/lwp_sema.inl>