Jason Low | 9063182 | 2014-07-14 10:27:49 -0700 | [diff] [blame^] | 1 | #ifndef __LINUX_OSQ_LOCK_H |
2 | #define __LINUX_OSQ_LOCK_H | ||||
3 | |||||
4 | /* | ||||
5 | * An MCS like lock especially tailored for optimistic spinning for sleeping | ||||
6 | * lock implementations (mutex, rwsem, etc). | ||||
7 | */ | ||||
8 | |||||
9 | #define OSQ_UNLOCKED_VAL (0) | ||||
10 | |||||
11 | struct optimistic_spin_queue { | ||||
12 | /* | ||||
13 | * Stores an encoded value of the CPU # of the tail node in the queue. | ||||
14 | * If the queue is empty, then it's set to OSQ_UNLOCKED_VAL. | ||||
15 | */ | ||||
16 | atomic_t tail; | ||||
17 | }; | ||||
18 | |||||
19 | #endif |