--- /dev/null
+#ifndef _lockcheck
+#define _lockcheck
+
+#define CHECK_LOCKS 0
+#define NUM_LOCKS 1024
+
+#if CHECK_LOCKS
+#define LOCKCHECK_INIT() palacios_lockcheck_init()
+#define LOCKCHECK_ALLOC(lock) palacios_lockcheck_alloc(lock)
+#define LOCKCHECK_FREE(lock) palacios_lockcheck_free(lock)
+#define LOCKCHECK_LOCK(lock) palacios_lockcheck_lock(lock)
+#define LOCKCHECK_UNLOCK(lock) palacios_lockcheck_unlock(lock)
+#define LOCKCHECK_LOCK_IRQSAVE(lock, flags) palacios_lockcheck_lock_irqsave(lock,flags)
+#define LOCKCHECK_UNLOCK_IRQRESTORE(lock, flags) palacios_lockcheck_unlock_irqrestore(lock,flags)
+#define LOCKCHECK_DEINIT() palacios_lockcheck_deinit()
+#else
+#define LOCKCHECK_INIT()
+#define LOCKCHECK_ALLOC(lock)
+#define LOCKCHECK_FREE(lock)
+#define LOCKCHECK_LOCK(lock)
+#define LOCKCHECK_UNLOCK(lock)
+#define LOCKCHECK_LOCK_IRQSAVE(lock, flags)
+#define LOCKCHECK_UNLOCK_IRQRESTORE(lock, flags)
+#define LOCKCHECK_DEINIT()
+#endif
+
+void palacios_lockcheck_init(void);
+void palacios_lockcheck_alloc(void *lock);
+void palacios_lockcheck_free(void *lock);
+void palacios_lockcheck_lock(void *lock);
+void palacios_lockcheck_unlock(void *lock);
+void palacios_lockcheck_lock_irqsave(void *lock,unsigned long flags);
+void palacios_lockcheck_unlock_irqrestore(void *lock,unsigned long flags);
+void palacios_lockcheck_deinit(void);
+
+#endif