1 /* $Id: queue.c,v 1.4 2001/11/25 15:21:10 dwelch Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/lpc/queue.c
6 * PURPOSE: Communication mechanism
7 * PROGRAMMER: David Welch (welch@cwcom.net)
12 /* INCLUDES *****************************************************************/
14 #include <ddk/ntddk.h>
15 #include <internal/ob.h>
16 #include <internal/port.h>
17 #include <internal/dbg.h>
20 #include <internal/debug.h>
24 EiEnqueueMessagePort (IN OUT PEPORT Port
,
25 IN PQUEUEDMESSAGE Message
)
27 InsertTailList (&Port
->QueueListHead
,
28 &Message
->QueueListEntry
);
33 EiEnqueueMessageAtHeadPort (IN OUT PEPORT Port
,
34 IN PQUEUEDMESSAGE Message
)
36 InsertTailList (&Port
->QueueListHead
,
37 &Message
->QueueListEntry
);
41 PQUEUEDMESSAGE STDCALL
42 EiDequeueMessagePort (IN OUT PEPORT Port
)
44 PQUEUEDMESSAGE Message
;
47 if (IsListEmpty(&Port
->QueueListHead
))
51 entry
= RemoveHeadList (&Port
->QueueListHead
);
52 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
60 EiEnqueueConnectMessagePort (IN OUT PEPORT Port
,
61 IN PQUEUEDMESSAGE Message
)
63 InsertTailList (&Port
->ConnectQueueListHead
,
64 &Message
->QueueListEntry
);
65 Port
->ConnectQueueLength
++;
69 PQUEUEDMESSAGE STDCALL
70 EiDequeueConnectMessagePort (IN OUT PEPORT Port
)
72 PQUEUEDMESSAGE Message
;
75 if (IsListEmpty(&Port
->ConnectQueueListHead
))
79 entry
= RemoveHeadList (&Port
->ConnectQueueListHead
);
80 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
81 Port
->ConnectQueueLength
--;