- queue_head_t waitq_queue; /* queue of elements */
- struct priority_queue waitq_prio_queue; /* priority ordered queue of elements */
+ queue_head_t waitq_queue; /* queue of elements - used for waitq not embedded in turnstile or ports */
+ struct priority_queue_sched_max waitq_prio_queue; /* priority ordered queue of elements - used for waitqs embedded in turnstiles */
+ struct { /* used for waitqs embedded in ports */
+ struct turnstile *waitq_ts; /* used to store receive turnstile of the port */
+ union {
+ void *waitq_tspriv; /* non special-reply port, used to store the watchport element for port used to store
+ * receive turnstile of the port */
+ int waitq_priv_pid; /* special-reply port, used to store the pid that copies out the send once right of the
+ * special-reply port. */
+ };
+ };