POK(kernelpart)
spinlock.h
Go to the documentation of this file.
1 /*
2  * POK header
3  *
4  * The following file is a part of the POK project. Any modification should
5  * made according to the POK licence. You CANNOT use this file or a part of
6  * this file is this part of a file for your own project
7  *
8  * For more information on the POK licence, please see our LICENCE FILE
9  *
10  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
11  *
12  * Copyright (c) 2007-2009 POK team
13  *
14  * Created by julien on Tue Dec 22 10:52:28 2009
15  */
16 
17 #ifndef __POK_SPINLOCK_H__
18 #define __POK_SPINLOCK_H__
19 
20 /*
21  * FIXME: MUST BE IMPLEMENTED
22  */
23 
24 
25 typedef unsigned int pok_spinlock_t;
26 
27 #define SPIN_UNLOCK(_spin_) \
28  (_spin_) = 0
29 
30 #define SPIN_LOCK(_spin_) \
31  do { \
32  asm volatile ("1: \n" \
33  "ldstub [%0], %1 \n" \
34  "tst %1 \n" \
35  "bnz 1b \n" \
36  : /* no output */ \
37  : "r" (&(_spin_)), "r"(1)); \
38  } while (0)
39 
40 #endif /* !__POK_SPINLOCK_H__ */