QUEUE.H

/*++ 

Copyright (c) 1995 Intel Corp

Module Name:

queue.h

Abstract:

Header file for the queue manager implemented by queue.c.

--*/
#ifndef QUEUE_H
#define QUEUE_H

#include "nowarn.h" /* turn off benign warnings */
#ifndef _WINSOCKAPI_
#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */
#endif
#include <windows.h>
#include "nowarn.h" /* some warnings may have been turned back on */


#define ABNORMAL 1
#define NORMAL 0

#define MAX_QUEUE_SIZE 1024
#define Q_NULL -1


typedef struct _QUEUE {

LPVOID QueueArray[MAX_QUEUE_SIZE];
int Head;
int Tail;
CRITICAL_SECTION CrSec;

} QUEUE, *PQUEUE;


PQUEUE QCreate(void);
void QFree(PQUEUE Queue);
BOOL QInsert(PQUEUE Queue, LPVOID Object);
BOOL QInsertAtHead(PQUEUE Queue, LPVOID Object);
LPVOID QRemove(PQUEUE Queue);
BOOL QIsEmpty(PQUEUE Queue);

#endif