#include <kern/macro_help.h>
#include <kern/assert.h>
+#include <mach/etap_events.h>
+#include <mach/etap.h>
extern unsigned int LockTimeOut; /* Number of hardware ticks of a lock timeout */
#include <ppc/hw_lock_types.h>
-#define simple_lock_init(l,t) hw_lock_init(l)
#define __slock_held_func__(l) hw_lock_held(l)
-extern void fast_usimple_lock(simple_lock_t);
-extern void fast_usimple_unlock(simple_lock_t);
-extern unsigned int fast_usimple_lock_try(simple_lock_t);
+extern void ppc_usimple_lock_init(simple_lock_t,etap_event_t);
+extern void ppc_usimple_lock(simple_lock_t);
+extern void ppc_usimple_unlock_rwmb(simple_lock_t);
+extern void ppc_usimple_unlock_rwcmb(simple_lock_t);
+extern unsigned int ppc_usimple_lock_try(simple_lock_t);
-#define simple_lock(l) fast_usimple_lock(l)
-#define simple_unlock(l) fast_usimple_unlock(l)
-#define simple_lock_try(l) fast_usimple_lock_try(l)
-#define simple_lock_addr(l) (&(l))
+#define MACHINE_SIMPLE_LOCK
+
+#define simple_lock_init(l,t) ppc_usimple_lock_init(l,t)
+#define simple_lock(l) ppc_usimple_lock(l)
+#define simple_unlock(l) ppc_usimple_unlock_rwcmb(l)
+#define simple_unlock_rwmb(l) ppc_usimple_unlock_rwmb(l)
+#define simple_lock_try(l) ppc_usimple_lock_try(l)
+#define simple_lock_addr(l) (&(l))
#define thread_sleep_simple_lock(l, e, i) \
thread_sleep_fast_usimple_lock((l), (e), (i))
+#define mutex_unlock(l) mutex_unlock_rwcmb(l)
+
#endif /* !(NCPUS == 1 || ETAP_LOCK_TRACE || USLOCK_DEBUG) */
#endif /* MACH_KERNEL_PRIVATE */