POK(kernelpart)
/home/jaouen/pok_official/pok/trunk/kernel/include/arch/sparc/spinlock.h
Go to the documentation of this file.
00001 /*
00002  *                               POK header
00003  * 
00004  * The following file is a part of the POK project. Any modification should
00005  * made according to the POK licence. You CANNOT use this file or a part of
00006  * this file is this part of a file for your own project
00007  *
00008  * For more information on the POK licence, please see our LICENCE FILE
00009  *
00010  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
00011  *
00012  *                                      Copyright (c) 2007-2009 POK team 
00013  *
00014  * Created by julien on Tue Dec 22 10:52:28 2009 
00015  */
00016 
00017 #ifndef __POK_SPINLOCK_H__
00018 #define __POK_SPINLOCK_H__
00019 
00020 /*
00021  * FIXME: MUST BE IMPLEMENTED
00022  */
00023 
00024 
00025 typedef unsigned int pok_spinlock_t;
00026 
00027 #define SPIN_UNLOCK(_spin_)                     \
00028   (_spin_) = 0
00029 
00030 #define SPIN_LOCK(_spin_)                       \
00031   do {                                          \
00032     asm volatile ("1:              \n"          \
00033                   "ldstub [%0], %1 \n"          \
00034                   "tst %1          \n"          \
00035                   "bnz 1b          \n"          \
00036                   : /* no output */             \
00037                   : "r" (&(_spin_)), "r"(1));   \
00038   } while (0)
00039 
00040 #endif /* !__POK_SPINLOCK_H__ */