Tools/DiskTool - Splitting parts out to be shared with NetTest
[tpg/acess2.git] / Tools / DiskTool / include / mutex.h
diff --git a/Tools/DiskTool/include/mutex.h b/Tools/DiskTool/include/mutex.h
new file mode 100644 (file)
index 0000000..9fe1c4f
--- /dev/null
@@ -0,0 +1,19 @@
+
+#ifndef _MUTEX_H_
+#define _MUTEX_H_
+
+typedef struct {
+       void    *LockerReturnAddr;
+}      tMutex;
+
+static inline int Mutex_Acquire(tMutex *m) {
+       if(m->LockerReturnAddr)
+               Log_KernelPanic("---", "Double mutex lock of %p by %p (was locked by %p)",
+                       m, __builtin_return_address(0), m->LockerReturnAddr);
+       m->LockerReturnAddr = __builtin_return_address(0);;
+       return 0;
+}
+static inline void Mutex_Release(tMutex *m) { m->LockerReturnAddr = 0; }
+
+#endif
+

UCC git Repository :: git.ucc.asn.au