turnstile
| Member Type | Member Name |
|---|---|
struct list_head | list |
struct spinlock | lock |
| Member Type | Member Name |
|---|---|
struct turnstile_hash_chain | heads[TURNSTILE_HASH_SIZE] |
| Name | Value |
|---|---|
TURNSTILE_STATE_UNUSED | None |
TURNSTILE_STATE_IN_HASH_TABLE | None |
TURNSTILE_STATE_IN_FREE_LIST | None |
voidturnstiles_init()struct turnstile *turnstile_create(void)voidturnstile_destroy(struct turnstile*ts)struct turnstile *turnstile_init(struct turnstile*ts)struct turnstile *turnstile_block(struct turnstile*ts,size_t queue_num,void *lock_obj,enum irqllock_irql)struct turnstile *turnstile_lookup(void *obj,enum irql*irql_out)voidturnstile_unlock(void *obj,enum irqlirql)voidturnstile_wake(struct turnstile*ts,size_t queue,size_t num_threads,enum irqllock_irql)size_tturnstile_get_waiter_count(void *lock_obj)int32_tturnstile_thread_priority(struct thread*t)voidturnstile_set_inheritor(void *lobj,struct thread*t)
Defines
Section titled “Defines”TURNSTILE_WRITER_QUEUE:0TURNSTILE_READER_QUEUE:1TURNSTILE_NUM_QUEUES:2TURNSTILE_HASH_SIZE:128TURNSTILE_HASH_MASK:(TURNSTILE_HASH_SIZE - 1)