3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/lpc/queue.c
6 * PURPOSE: Communication mechanism
8 * PROGRAMMERS: David Welch (welch@cwcom.net)
11 /* INCLUDES *****************************************************************/
15 #include <internal/debug.h>
17 /* FUNCTIONS *****************************************************************/
20 EiEnqueueMessagePort (IN OUT PEPORT Port
,
21 IN PQUEUEDMESSAGE Message
)
23 InsertTailList (&Port
->QueueListHead
,
24 &Message
->QueueListEntry
);
29 EiEnqueueMessageAtHeadPort (IN OUT PEPORT Port
,
30 IN PQUEUEDMESSAGE Message
)
32 InsertTailList (&Port
->QueueListHead
,
33 &Message
->QueueListEntry
);
37 PQUEUEDMESSAGE STDCALL
38 EiDequeueMessagePort (IN OUT PEPORT Port
)
40 PQUEUEDMESSAGE Message
;
43 if (IsListEmpty(&Port
->QueueListHead
))
47 entry
= RemoveHeadList (&Port
->QueueListHead
);
48 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
56 EiEnqueueConnectMessagePort (IN OUT PEPORT Port
,
57 IN PQUEUEDMESSAGE Message
)
59 InsertTailList (&Port
->ConnectQueueListHead
,
60 &Message
->QueueListEntry
);
61 Port
->ConnectQueueLength
++;
65 PQUEUEDMESSAGE STDCALL
66 EiDequeueConnectMessagePort (IN OUT PEPORT Port
)
68 PQUEUEDMESSAGE Message
;
71 if (IsListEmpty(&Port
->ConnectQueueListHead
))
75 entry
= RemoveHeadList (&Port
->ConnectQueueListHead
);
76 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
77 Port
->ConnectQueueLength
--;