Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
1.8 KiB

  1. //============================================================================
  2. // Copyright (c) 1995, Microsoft Corporation
  3. //
  4. // File: queue.h
  5. //
  6. // History:
  7. // Abolade Gbadegesin Aug-8-1995 Created.
  8. //
  9. // Contains structures and macros used for various queues.
  10. //============================================================================
  11. #ifndef _QUEUE_H_
  12. #define _QUEUE_H_
  13. //
  14. // type definitions for send queue
  15. //
  16. typedef struct _SEND_QUEUE_ENTRY {
  17. LIST_ENTRY SQE_Link;
  18. DWORD SQE_Count;
  19. RIP_IP_ROUTE SQE_Routes[MAX_PACKET_ENTRIES];
  20. } SEND_QUEUE_ENTRY, *PSEND_QUEUE_ENTRY;
  21. DWORD
  22. EnqueueSendEntry(
  23. PLOCKED_LIST pQueue,
  24. PRIP_IP_ROUTE pRoute
  25. );
  26. DWORD
  27. DequeueSendEntry(
  28. PLOCKED_LIST pQueue,
  29. PRIP_IP_ROUTE pRoute
  30. );
  31. DWORD
  32. FlushSendQueue(
  33. PLOCKED_LIST pQueue
  34. );
  35. //
  36. // type definitions for the receive queue
  37. //
  38. typedef struct _RECV_QUEUE_ENTRY {
  39. LIST_ENTRY RQE_Link;
  40. PBYTE RQE_Routes;
  41. DWORD RQE_Command;
  42. } RECV_QUEUE_ENTRY, *PRECV_QUEUE_ENTRY;
  43. DWORD
  44. EnqueueRecvEntry(
  45. PLOCKED_LIST pQueue,
  46. DWORD dwCommand,
  47. PBYTE pRoutes
  48. );
  49. DWORD
  50. DequeueRecvEntry(
  51. PLOCKED_LIST pQueue,
  52. PDWORD dwCommand,
  53. PBYTE *ppRoutes
  54. );
  55. DWORD
  56. FlushRecvQueue(
  57. PLOCKED_LIST pQueue
  58. );
  59. //
  60. // type definitions for event message queue
  61. //
  62. typedef struct _EVENT_QUEUE_ENTRY {
  63. LIST_ENTRY EQE_Link;
  64. ROUTING_PROTOCOL_EVENTS EQE_Event;
  65. MESSAGE EQE_Result;
  66. } EVENT_QUEUE_ENTRY, *PEVENT_QUEUE_ENTRY;
  67. DWORD
  68. EnqueueEvent(
  69. PLOCKED_LIST pQueue,
  70. ROUTING_PROTOCOL_EVENTS Event,
  71. MESSAGE Result
  72. );
  73. DWORD
  74. DequeueEvent(
  75. PLOCKED_LIST pQueue,
  76. ROUTING_PROTOCOL_EVENTS *pEvent,
  77. PMESSAGE pResult
  78. );
  79. #endif // _QUEUE_H_