New emp_searchque()
This commit is contained in:
parent
292f92f705
commit
942eddf533
2 changed files with 16 additions and 0 deletions
|
@ -43,6 +43,8 @@ struct emp_qelem {
|
||||||
|
|
||||||
extern void emp_remque(struct emp_qelem *);
|
extern void emp_remque(struct emp_qelem *);
|
||||||
extern void emp_initque(struct emp_qelem *);
|
extern void emp_initque(struct emp_qelem *);
|
||||||
|
extern struct emp_qelem *emp_searchque(struct emp_qelem *, void *,
|
||||||
|
int (*)(struct emp_qelem *, void *));
|
||||||
extern void emp_insque(struct emp_qelem *, struct emp_qelem *);
|
extern void emp_insque(struct emp_qelem *, struct emp_qelem *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -58,6 +59,19 @@ emp_remque(struct emp_qelem *elem)
|
||||||
elem->q_back->q_forw = elem->q_forw;
|
elem->q_back->q_forw = elem->q_forw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct emp_qelem *
|
||||||
|
emp_searchque(struct emp_qelem *queue, void *key,
|
||||||
|
int (*test)(struct emp_qelem *, void *))
|
||||||
|
{
|
||||||
|
struct emp_qelem *qp;
|
||||||
|
|
||||||
|
for (qp = queue->q_forw; qp != queue; qp = qp->q_forw) {
|
||||||
|
if (test(qp, key))
|
||||||
|
return qp;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
emp_initque(struct emp_qelem *elem)
|
emp_initque(struct emp_qelem *elem)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue