www.pudn.com > ntcrypto.rar > queue.h


/* queue.h */ 
 
/*********************************/ 
/* Definitions                   */ 
/*********************************/ 
 
#define		QUEUE_MAGIC	0xBADD 
 
 
 
/*********************************/ 
/* Structure Definitions         */ 
/*********************************/ 
 
typedef struct { 
	void		*next;				// Next element 
	void		*prev;				// Previous element 
	void		*data;				// Data 
} Element_t; 
 
typedef struct { 
	Element_t	*elem;				// Next element to be returned 
} Iter_t; 
 
typedef struct { 
	int			magic;				// Magic number 
	Element_t	*head;				// Head of queue 
	Element_t	*tail;				// End of queue 
	long		count;				// Number of entries 
	long		mark;				// Watermark 
} Queue_t; 
 
 
/*********************************/ 
/* Function Definitions          */ 
/*********************************/ 
Element_t *elementAlloc(); 
void elementFree(Element_t *element); 
void queueInit (Queue_t *queue); 
Element_t *queueAdd (Queue_t *queue, Element_t *element); 
Element_t *queueRemove (Queue_t *queue, Element_t *element); 
void queueFree (Queue_t *queue); 
void iterInit (Queue_t *queue, Iter_t *iter); 
Element_t *queueIterate (Iter_t *iter);