sleepqueue
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
if ((thread->sleepqueue = _sleepq_alloc()) == NULL ||
if (thread->sleepqueue != NULL)
_sleepq_free(thread->sleepqueue);
SLIST_HEAD(, sleepqueue) sq_freeq;
LIST_ENTRY(sleepqueue) sq_hash;
SLIST_ENTRY(sleepqueue) sq_flink;
struct sleepqueue *sleepqueue;
_sleepq_first(struct sleepqueue *sq)
struct sleepqueue *_sleepq_alloc(void) __hidden;
void _sleepq_free(struct sleepqueue *) __hidden;
struct sleepqueue *_sleepq_lookup(void *) __hidden;
int _sleepq_remove(struct sleepqueue *, struct pthread *) __hidden;
void _sleepq_drop(struct sleepqueue *,
struct sleepqueue *sq;
struct sleepqueue *
struct sleepqueue *sq;
SLIST_INSERT_HEAD(&sq->sq_freeq, td->sleepqueue, sq_flink);
sq = td->sleepqueue;
td->sleepqueue = NULL;
_sleepq_remove(struct sleepqueue *sq, struct pthread *td)
td->sleepqueue = sq;
td->sleepqueue = SLIST_FIRST(&sq->sq_freeq);
_sleepq_drop(struct sleepqueue *sq,
struct sleepqueue *sq2;
td->sleepqueue = sq;
td->sleepqueue = sq2;
LIST_HEAD(, sleepqueue) sc_queues;
struct sleepqueue *
struct sleepqueue *sq;
sq = __thr_calloc(1, sizeof(struct sleepqueue));
_sleepq_free(struct sleepqueue *sq)
static inline struct sleepqueue *
struct sleepqueue *sq;
sleepq_remove_matching(struct sleepqueue *sq, int queue,
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq, *sq1;
struct sleepqueue *sq;
LIST_ENTRY(sleepqueue) sq_hash; /* (c) Chain and free list. */
LIST_HEAD(, sleepqueue) sq_free; /* (c) Free queues. */
LIST_HEAD(, sleepqueue) sc_queues; /* List of sleep queues. */
struct sleepqueue *sq;
if (sq == (struct sleepqueue *)addr)
DB_SHOW_ALIAS(sleepqueue, db_show_sleepqueue);
static void sleepq_resume_thread(struct sleepqueue *sq, struct thread *td,
static void sleepq_remove_thread(struct sleepqueue *sq, struct thread *td);
sleepq_zone = uma_zcreate("SLEEPQUEUE", sizeof(struct sleepqueue),
struct sleepqueue *
sleepq_free(struct sleepqueue *sq)
struct sleepqueue *
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
sleepq_resume_thread(struct sleepqueue *sq, struct thread *td, int pri,
sleepq_remove_thread(struct sleepqueue *sq, struct thread *td)
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue *sq;
struct sleepqueue;
struct sleepqueue *td_sleepqueue; /* (k) Associated sleep queue. */
struct sleepqueue;
struct sleepqueue *sleepq_alloc(void);
void sleepq_free(struct sleepqueue *sq);
struct sleepqueue *sleepq_lookup(const void *wchan);
void sleepq_remove_matching(struct sleepqueue *sq, int queue,