typedef struct waitq {
  int clientid;
  int num_wanted;
  int *wlock;
  struct waitq *next;
} waitq;

waitq *waitq_peek(waitq *head,int clientid);
waitq *new_waitq(waitq **head,int clientid,int num);
int addto_waitq(waitq *q,int num);
int remove_waitq(waitq **head,int clientid);

// for debugging only:
void dump_waitq(int n,waitq *q);
/*
  Author: Michael Schmidt (michael@embeddedARM.com)
 */
