53 lines
858 B
C
53 lines
858 B
C
/******************************************************************************
|
|
*
|
|
* @brief Implement a first in, first out linked list.
|
|
*
|
|
*******************************************************************************/
|
|
|
|
#ifndef _QUEUE_H_
|
|
#define _QUEUE_H_
|
|
|
|
/********************************************************************/
|
|
|
|
/*
|
|
* Individual queue node
|
|
*/
|
|
typedef struct NODE
|
|
{
|
|
struct NODE *next;
|
|
} QNODE;
|
|
|
|
/*
|
|
* Queue Struture - linked list of qentry items
|
|
*/
|
|
typedef struct
|
|
{
|
|
QNODE *head;
|
|
QNODE *tail;
|
|
} QUEUE;
|
|
|
|
/*
|
|
* Functions provided by queue.c
|
|
*/
|
|
void
|
|
queue_init(QUEUE *);
|
|
|
|
int
|
|
queue_isempty(QUEUE *);
|
|
|
|
void
|
|
queue_add(QUEUE *, QNODE *);
|
|
|
|
QNODE*
|
|
queue_remove(QUEUE *);
|
|
|
|
QNODE*
|
|
queue_peek(QUEUE *);
|
|
|
|
void
|
|
queue_move(QUEUE *, QUEUE *);
|
|
|
|
/********************************************************************/
|
|
|
|
#endif /* _QUEUE_H_ */
|