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_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 *);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
#include <config.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include "queue.h"
|
||||
|
||||
void
|
||||
|
@ -58,6 +59,19 @@ emp_remque(struct emp_qelem *elem)
|
|||
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
|
||||
emp_initque(struct emp_qelem *elem)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue