From b4ab914f210429e3a40c7983271ae833da5d7e6f Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Thu, 5 Jan 2012 03:23:51 +0000 Subject: [PATCH] OS/2 updates [KO Myung-Hun] --- src/lib/cothread/x86.c | 7 +++++++ src/osd/sdl/sdlsync_os2.c | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/cothread/x86.c b/src/lib/cothread/x86.c index 2d083995b3d..b4d58f8bb8b 100644 --- a/src/lib/cothread/x86.c +++ b/src/lib/cothread/x86.c @@ -38,6 +38,13 @@ static unsigned char co_swap_function[] = { DWORD old_privileges; VirtualProtect(co_swap_function, sizeof co_swap_function, PAGE_EXECUTE_READWRITE, &old_privileges); } +#elif defined(__OS2__) + #define INCL_DOS + #include + + void co_init() { + DosSetMem(co_swap_function, sizeof co_swap_function, PAG_READ | PAG_WRITE | PAG_EXECUTE); + } #else #include #include diff --git a/src/osd/sdl/sdlsync_os2.c b/src/osd/sdl/sdlsync_os2.c index e382fee91ae..8ea3dcc56c4 100644 --- a/src/osd/sdl/sdlsync_os2.c +++ b/src/osd/sdl/sdlsync_os2.c @@ -391,7 +391,9 @@ int osd_event_wait(osd_event *event, osd_ticks_t timeout) { ULONG ulCount; - DosResetEventSem(event->hev, &ulCount); + if(rc == 0) + DosResetEventSem(event->hev, &ulCount); + DosReleaseMutexSem(event->hmtx); }