Fix IO memory access .. SB128 driver makes noises in VMWare - CMI is untested (Curren...
[AROS.git] / rom / exec / semaphores.h
blob2fcb8d73e0df1fada35b8d1972eba8957a33c9be
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 Lang:
7 */
8 #ifndef SEMAPHORES_H
9 #define SEMAPHORES_H
11 #include <exec/tasks.h>
12 #include <exec/nodes.h>
14 /* Signal flag to awake tasks waiting on a semaphore */
15 #define SEMAPHORESIGF (0x8000)
18 Node for a task waiting synchronously:
19 Maybe this shouldn't have a struct Node as first element - but I want
20 it to be compatible to Procure()'s struct SemaphoreMessage.
21 This means that ln_Name contains the lock type (SM_EXCLUSIVE or
22 SM_SHARED). And since ln_Type is NT_MESSAGE for semaphore messages
23 waiting on the semaphore list it isn't free either. The only field
24 left in the node is ln_Pri which contains the node type (see below).
26 struct SemaphoreNode
28 struct Node node;
29 struct Task *task;
32 /* Node types in the semaphore's waiting queue */
33 #define SN_TYPE_OBTAIN 0
34 #define SN_TYPE_PROCURE 1
36 #endif