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 *****************************************************************/
16 #include <internal/debug.h>
18 /* FUNCTIONS *****************************************************************/
21 EiEnqueueMessagePort (IN OUT PEPORT Port
,
22 IN PQUEUEDMESSAGE Message
)
24 InsertTailList (&Port
->QueueListHead
,
25 &Message
->QueueListEntry
);
30 EiEnqueueMessageAtHeadPort (IN OUT PEPORT Port
,
31 IN PQUEUEDMESSAGE Message
)
33 InsertTailList (&Port
->QueueListHead
,
34 &Message
->QueueListEntry
);
38 PQUEUEDMESSAGE STDCALL
39 EiDequeueMessagePort (IN OUT PEPORT Port
)
41 PQUEUEDMESSAGE Message
;
44 if (IsListEmpty(&Port
->QueueListHead
))
48 entry
= RemoveHeadList (&Port
->QueueListHead
);
49 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
57 EiEnqueueConnectMessagePort (IN OUT PEPORT Port
,
58 IN PQUEUEDMESSAGE Message
)
60 InsertTailList (&Port
->ConnectQueueListHead
,
61 &Message
->QueueListEntry
);
62 Port
->ConnectQueueLength
++;
66 PQUEUEDMESSAGE STDCALL
67 EiDequeueConnectMessagePort (IN OUT PEPORT Port
)
69 PQUEUEDMESSAGE Message
;
72 if (IsListEmpty(&Port
->ConnectQueueListHead
))
76 entry
= RemoveHeadList (&Port
->ConnectQueueListHead
);
77 Message
= CONTAINING_RECORD (entry
, QUEUEDMESSAGE
, QueueListEntry
);
78 Port
->ConnectQueueLength
--;