From 025a38a1f743fd9e89cbd477abe3f79a8d098097 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Sat, 19 Nov 2011 17:21:31 +0100 Subject: Moved os and hal related files into subdirectories. --- mutex.h | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 mutex.h (limited to 'mutex.h') diff --git a/mutex.h b/mutex.h deleted file mode 100644 index d12331d..0000000 --- a/mutex.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef MUTEX_H -#define MUTEX_H - -class Mutex { - private: - uint8_t locked; - public: - Mutex() : locked(0) {} - Mutex(uint8_t l) : locked(l) {} - - bool trylock() { - uint8_t val; - - // Check if mutex is locked. - asm volatile ("ldrexb %0, [%1]" : "=r" (val) : "r" (&locked)); - if(val) { - return false; - } - - // Try taking the lock. - asm volatile ("strexb %0, %1, [%2]" : "=r" (val) : "r" (1), "r" (&locked)); - if(val) { - return false; - } - - asm volatile("dmb"); - return true; - } - - void lock() { - while(!trylock()) { - Thread::yield(); - } - } - - void unlock() { - asm volatile("dmb"); - locked = 0; - } -}; - -#endif -- cgit v1.2.3