xref: /plan9-contrib/sys/src/ape/lib/ap/sparc/lock.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #define _LOCK_EXTENSION
2 #include "../plan9/sys9.h"
3 #include <lock.h>
4 
5 int	tas(int*);
6 
7 void
8 lockinit(void)
9 {
10 }
11 
12 void
13 lock(Lock *lk)
14 {
15 	while(tas(&lk->val))
16 		_SLEEP(0);
17 }
18 
19 int
20 canlock(Lock *lk)
21 {
22 	if(tas(&lk->val))
23 		return 0;
24 	return 1;
25 }
26 
27 void
28 unlock(Lock *lk)
29 {
30 	lk->val = 0;
31 }
32