home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
LANGUAGS
/
C
/
MFILE.LBR
/
DEQUEUE.CZ
/
DEQUEUE.C
Wrap
Text File
|
2000-06-30
|
1KB
|
54 lines
/* dequeue.c - support routines to manage a doubly linked queue */
#include <stdio.h>
#include "dequeue.h"
#define ERROR -1
QUEUE Nodeq = {&Nodeq, &Nodeq, ERROR}; /* semaphore element */
QUEUE *qNode = &Nodeq; /* pointer to semaphore */
void mDeQue(f) /* remove element f from dequeue */
QUEUE *f;
{
#if defined(DEBUG) && defined(QDEBUG)
printf("mDeQue:");
qDump();
#endif
f->pNode->nNode = f->nNode;
f->nNode->pNode = f->pNode;
/* make degenerate solitary queue */
f->pNode = f->nNode = f;
#if defined(DEBUG) && defined(QDEBUG)
qDump();
#endif
}
void mEnQue(f) /* add element f to head of dequeue */
QUEUE *f;
{
#if defined(DEBUG) && defined(QDEBUG)
printf("mEnQue:",f);
dump(f);
qDump();
#endif
f->nNode = firstNode;
f->pNode = qNode;
firstNode->pNode = f;
firstNode = f;
#if defined(DEBUG) && defined(QDEBUG)
qDump();
#endif
}
void mSplice(f) /* move element f to head of dequeue */
QUEUE *f;
{
mDeQue(f);
mEnQue(f);
}
/* end of dequeue.c */