Skip to content

condvar

struct condvar {
struct thread_queue waiters;
bool irq_disable;
};

struct condvar referenced types:

struct condvar_with_cb {
struct condvar *cv;
condvar_callback cb;
void *cb_arg;
size_t cookie;
};

struct condvar_with_cb referenced types:

typedef void (*condvar_callback)(void *);
typedef void (*thread_action_callback)(struct thread * woke);

type alias thread_action_callback referenced types:

enum wake_reason condvar_wait(struct condvar *cv, struct spinlock *lock, enum irql irql, enum irql *out);

condvar_wait referenced types:

void condvar_init(struct condvar *cv, bool irq_disable);

condvar_init referenced types:

struct thread * condvar_signal(struct condvar *cv);

condvar_signal referenced types:

struct thread * condvar_signal_callback(struct condvar *cv, thread_action_callback cb);

condvar_signal_callback referenced types:

void condvar_broadcast_callback(struct condvar *cv, thread_action_callback cb);

condvar_broadcast_callback referenced types:

void condvar_broadcast(struct condvar *cv);

condvar_broadcast referenced types:

enum wake_reason condvar_wait_timeout(struct condvar *cv, struct spinlock *lock, time_t timeout_ms, enum irql irql, enum irql *out);

condvar_wait_timeout referenced types:

#define CONDVAR_INIT_IRQ_DISABLE true
#define CONDVAR_INIT_NORMAL false