|
Lines 83-92
struct turnstile;
Link Here
|
| 83 |
#define TS_EXCLUSIVE_QUEUE 0 |
83 |
#define TS_EXCLUSIVE_QUEUE 0 |
| 84 |
#define TS_SHARED_QUEUE 1 |
84 |
#define TS_SHARED_QUEUE 1 |
| 85 |
|
85 |
|
| 86 |
/* The type of lock currently held. */ |
|
|
| 87 |
#define TS_EXCLUSIVE_LOCK TS_EXCLUSIVE_QUEUE |
| 88 |
#define TS_SHARED_LOCK TS_SHARED_QUEUE |
| 89 |
|
| 90 |
void init_turnstiles(void); |
86 |
void init_turnstiles(void); |
| 91 |
void turnstile_adjust(struct thread *, u_char); |
87 |
void turnstile_adjust(struct thread *, u_char); |
| 92 |
struct turnstile *turnstile_alloc(void); |
88 |
struct turnstile *turnstile_alloc(void); |
|
Lines 102-108
struct thread *turnstile_head(struct turnstile *, int);
Link Here
|
| 102 |
struct turnstile *turnstile_lookup(struct lock_object *); |
98 |
struct turnstile *turnstile_lookup(struct lock_object *); |
| 103 |
int turnstile_signal(struct turnstile *, int); |
99 |
int turnstile_signal(struct turnstile *, int); |
| 104 |
struct turnstile *turnstile_trywait(struct lock_object *); |
100 |
struct turnstile *turnstile_trywait(struct lock_object *); |
| 105 |
void turnstile_unpend(struct turnstile *, int); |
101 |
void turnstile_unpend(struct turnstile *); |
| 106 |
void turnstile_wait(struct turnstile *, struct thread *, int); |
102 |
void turnstile_wait(struct turnstile *, struct thread *, int); |
| 107 |
struct thread *turnstile_lock(struct turnstile *, struct lock_object **); |
103 |
struct thread *turnstile_lock(struct turnstile *, struct lock_object **); |
| 108 |
void turnstile_unlock(struct turnstile *, struct lock_object *); |
104 |
void turnstile_unlock(struct turnstile *, struct lock_object *); |