• Home
  • Raw
  • Download

Lines Matching +full:1 +full:a

20  * There is at most one owner of a spinlock.  There are not different
23 * When trying to obtain a spinlock, the function "spins" forever, or busy-
31 * 1 somebody owns the spinlock
43 "1: movi %0, 1\n" in arch_spin_lock()
44 " s32c1i %0, %1, 0\n" in arch_spin_lock()
45 " bnez %0, 1b\n" in arch_spin_lock()
46 : "=&a" (tmp) in arch_spin_lock()
47 : "a" (&lock->slock) in arch_spin_lock()
51 /* Returns 1 if the lock is obtained, 0 otherwise. */
60 " movi %0, 1\n" in arch_spin_trylock()
61 " s32c1i %0, %1, 0\n" in arch_spin_trylock()
62 : "=&a" (tmp) in arch_spin_trylock()
63 : "a" (&lock->slock) in arch_spin_trylock()
66 return tmp == 0 ? 1 : 0; in arch_spin_trylock()
75 " s32ri %0, %1, 0\n" in arch_spin_unlock()
76 : "=&a" (tmp) in arch_spin_unlock()
77 : "a" (&lock->slock) in arch_spin_unlock()
84 * Read-write locks are really a more flexible spinlock. They allow
87 * there is a write owner). These rwlocks are unfair to writers. Writers
105 "1: movi %0, 1\n" in arch_write_lock()
107 " s32c1i %0, %1, 0\n" in arch_write_lock()
108 " bnez %0, 1b\n" in arch_write_lock()
109 : "=&a" (tmp) in arch_write_lock()
110 : "a" (&rw->lock) in arch_write_lock()
114 /* Returns 1 if the lock is obtained, 0 otherwise. */
123 " movi %0, 1\n" in arch_write_trylock()
125 " s32c1i %0, %1, 0\n" in arch_write_trylock()
126 : "=&a" (tmp) in arch_write_trylock()
127 : "a" (&rw->lock) in arch_write_trylock()
130 return tmp == 0 ? 1 : 0; in arch_write_trylock()
139 " s32ri %0, %1, 0\n" in arch_write_unlock()
140 : "=&a" (tmp) in arch_write_unlock()
141 : "a" (&rw->lock) in arch_write_unlock()
151 "1: l32i %1, %2, 0\n" in arch_read_lock()
152 " bltz %1, 1b\n" in arch_read_lock()
153 " wsr %1, scompare1\n" in arch_read_lock()
154 " addi %0, %1, 1\n" in arch_read_lock()
156 " bne %0, %1, 1b\n" in arch_read_lock()
157 : "=&a" (result), "=&a" (tmp) in arch_read_lock()
158 : "a" (&rw->lock) in arch_read_lock()
162 /* Returns 1 if the lock is obtained, 0 otherwise. */
170 " l32i %1, %2, 0\n" in arch_read_trylock()
171 " addi %0, %1, 1\n" in arch_read_trylock()
172 " bltz %0, 1f\n" in arch_read_trylock()
173 " wsr %1, scompare1\n" in arch_read_trylock()
175 " sub %0, %0, %1\n" in arch_read_trylock()
176 "1:\n" in arch_read_trylock()
177 : "=&a" (result), "=&a" (tmp) in arch_read_trylock()
178 : "a" (&rw->lock) in arch_read_trylock()
189 "1: l32i %1, %2, 0\n" in arch_read_unlock()
190 " addi %0, %1, -1\n" in arch_read_unlock()
191 " wsr %1, scompare1\n" in arch_read_unlock()
193 " bne %0, %1, 1b\n" in arch_read_unlock()
194 : "=&a" (tmp1), "=&a" (tmp2) in arch_read_unlock()
195 : "a" (&rw->lock) in arch_read_unlock()