From c7ceb99195e88b0facd11cb1a9844c6604090538 Mon Sep 17 00:00:00 2001 From: Ruediger Hanke Date: Wed, 5 Jun 2002 13:48:32 +0000 Subject: [PATCH] Added mutex functions to MorphOS interface svn-id: r4407 --- morphos/morphos.cpp | 25 +++++++++++++++++++++++++ morphos/morphos.h | 6 ++++++ 2 files changed, 31 insertions(+) diff --git a/morphos/morphos.cpp b/morphos/morphos.cpp index 6009de7dbc1..1b08b0c715c 100644 --- a/morphos/morphos.cpp +++ b/morphos/morphos.cpp @@ -277,6 +277,31 @@ void *OSystem_MorphOS::create_thread(ThreadProc *proc, void *param) return ScummMusicThread; } +void *OSystem_MorphOS::create_mutex(void) +{ + struct SignalSemaphore *sem = (struct SignalSemaphore *)AllocVec( sizeof( struct SignalSemaphore ), MEMF_PUBLIC ); + + if( sem ) + InitSemaphore( sem ); + + return sem; +} + +void OSystem_MorphOS::lock_mutex(void *mutex) +{ + ObtainSemaphore( (struct SignalSemaphore *)mutex ); +} + +void OSystem_MorphOS::unlock_mutex(void *mutex) +{ + ReleaseSemaphore( (struct SignalSemaphore *)mutex ); +} + +void OSystem_MorphOS::delete_mutex(void *mutex) +{ + FreeVec( mutex ); +} + uint32 OSystem_MorphOS::property(int param, Property *value) { switch( param ) diff --git a/morphos/morphos.h b/morphos/morphos.h index d0be7233188..752a007179d 100644 --- a/morphos/morphos.h +++ b/morphos/morphos.h @@ -67,6 +67,12 @@ class OSystem_MorphOS : public OSystem // Add a new callback timer virtual void set_timer(int timer, int (*callback)(int)); + // Mutex handling + virtual void *create_mutex(void); + virtual void lock_mutex(void *mutex); + virtual void unlock_mutex(void *mutex); + virtual void delete_mutex(void *mutex); + // Create a thread virtual void *create_thread(ThreadProc *proc, void *param);