summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2015-01-05 19:50:36 +0100
committer couriersud <couriersud@arcor.de>2015-01-05 19:50:36 +0100
commit58abceed032d87d86df128836881b61d7cdedd36 (patch)
tree6b1779201c9144764e44d56c1f2ccec32ea019ea /src
parent5c14bcd0d1536abf586e7db3dfca170934d0f217 (diff)
Moved sync related osd stuff to osd/modules/sync. (nw)
Diffstat (limited to 'src')
-rw-r--r--src/osd/modules/sync/osdsync.h (renamed from src/osd/windows/winsync.h)6
-rw-r--r--src/osd/modules/sync/sync_mini.c (renamed from src/osd/sdl/sdlsync_mini.c)4
-rw-r--r--src/osd/modules/sync/sync_ntc.c (renamed from src/osd/sdl/sdlsync_ntc.c)2
-rw-r--r--src/osd/modules/sync/sync_os2.c (renamed from src/osd/sdl/sdlsync_os2.c)2
-rw-r--r--src/osd/modules/sync/sync_sdl.c (renamed from src/osd/sdl/sdlsync_sdl.c)2
-rw-r--r--src/osd/modules/sync/sync_tc.c (renamed from src/osd/sdl/sdlsync_tc.c)2
-rw-r--r--src/osd/modules/sync/sync_windows.c (renamed from src/osd/windows/winsync.c)2
-rw-r--r--src/osd/osdmini/miniwork.c4
-rw-r--r--src/osd/sdl/sdl.mak6
-rw-r--r--src/osd/sdl/sdlsync.h204
-rw-r--r--src/osd/sdl/sdlsync_win32.c12
-rw-r--r--src/osd/sdl/sdlwork.c11
-rw-r--r--src/osd/sdl/watchdog.h2
-rw-r--r--src/osd/sdl/window.h2
-rw-r--r--src/osd/windows/osinline.h20
-rw-r--r--src/osd/windows/windows.mak4
-rw-r--r--src/osd/windows/winmain.c2
-rw-r--r--src/osd/windows/winwork.c26
18 files changed, 44 insertions, 269 deletions
diff --git a/src/osd/windows/winsync.h b/src/osd/modules/sync/osdsync.h
index 725d459366d..5d166eb5145 100644
--- a/src/osd/windows/winsync.h
+++ b/src/osd/modules/sync/osdsync.h
@@ -7,8 +7,8 @@
//
//============================================================
-#ifndef __WINSYNC__
-#define __WINSYNC__
+#ifndef __OSDSYNC__
+#define __OSDSYNC__
/***************************************************************************
SYNCHRONIZATION INTERFACES - Events
@@ -197,4 +197,4 @@ void osd_scalable_lock_release(osd_scalable_lock *lock, INT32 myslot);
void osd_scalable_lock_free(osd_scalable_lock *lock);
-#endif /* __WINSYNC__ */
+#endif /* __OSDSYNC__ */
diff --git a/src/osd/sdl/sdlsync_mini.c b/src/osd/modules/sync/sync_mini.c
index 91ea06c17dc..8f10cbaa65b 100644
--- a/src/osd/sdl/sdlsync_mini.c
+++ b/src/osd/modules/sync/sync_mini.c
@@ -7,9 +7,7 @@
//============================================================
#include "osdcore.h"
-#include "sdlsync.h"
-
-#define USE_SCALABLE_LOCKS (0)
+#include "osdsync.h"
struct _osd_event
{
diff --git a/src/osd/sdl/sdlsync_ntc.c b/src/osd/modules/sync/sync_ntc.c
index 1c7158198ed..0ec99b2094a 100644
--- a/src/osd/sdl/sdlsync_ntc.c
+++ b/src/osd/modules/sync/sync_ntc.c
@@ -32,7 +32,7 @@
// MAME headers
#include "osdcore.h"
#include "osinline.h"
-#include "sdlsync.h"
+#include "osdsync.h"
#include "eminline.h"
diff --git a/src/osd/sdl/sdlsync_os2.c b/src/osd/modules/sync/sync_os2.c
index 32d07cc59fe..6ae91d4d408 100644
--- a/src/osd/sdl/sdlsync_os2.c
+++ b/src/osd/modules/sync/sync_os2.c
@@ -22,7 +22,7 @@
// MAME headers
#include "osdcore.h"
#include "osinline.h"
-#include "sdlsync.h"
+#include "osdsync.h"
#include "eminline.h"
diff --git a/src/osd/sdl/sdlsync_sdl.c b/src/osd/modules/sync/sync_sdl.c
index 80bb4607c0a..fe1fdafe0bc 100644
--- a/src/osd/sdl/sdlsync_sdl.c
+++ b/src/osd/modules/sync/sync_sdl.c
@@ -17,7 +17,7 @@
// MAME headers
#include "osdcore.h"
#include "osinline.h"
-#include "sdlsync.h"
+#include "osdsync.h"
#include "eminline.h"
diff --git a/src/osd/sdl/sdlsync_tc.c b/src/osd/modules/sync/sync_tc.c
index f26a438ea19..3a1e8ec8d17 100644
--- a/src/osd/sdl/sdlsync_tc.c
+++ b/src/osd/modules/sync/sync_tc.c
@@ -28,7 +28,7 @@
#include "osdcomm.h"
#include "osdcore.h"
-#include "sdlsync.h"
+#include "osdsync.h"
#include <pthread.h>
#include <errno.h>
diff --git a/src/osd/windows/winsync.c b/src/osd/modules/sync/sync_windows.c
index ce69cea1651..8326ce41f29 100644
--- a/src/osd/windows/winsync.c
+++ b/src/osd/modules/sync/sync_windows.c
@@ -15,7 +15,7 @@
// MAME headers
#include "osdcore.h"
#include "osinline.h"
-#include "winsync.h"
+#include "osdsync.h"
//============================================================
diff --git a/src/osd/osdmini/miniwork.c b/src/osd/osdmini/miniwork.c
index 0e98ca356db..fd359c6ee40 100644
--- a/src/osd/osdmini/miniwork.c
+++ b/src/osd/osdmini/miniwork.c
@@ -19,7 +19,11 @@ struct osd_work_item
void *result;
};
+//============================================================
+// GLOBAL VARIABLES
+//============================================================
+int osd_num_processors = 0;
//============================================================
// osd_work_queue_alloc
diff --git a/src/osd/sdl/sdl.mak b/src/osd/sdl/sdl.mak
index e5394aaf797..834c720b848 100644
--- a/src/osd/sdl/sdl.mak
+++ b/src/osd/sdl/sdl.mak
@@ -322,7 +322,7 @@ endif
ifeq ($(TARGETOS),win32)
BASE_TARGETOS = win32
-SYNC_IMPLEMENTATION = win32
+SYNC_IMPLEMENTATION = windows
NO_X11 = 1
NO_USE_XINPUT = 1
DEFS += -DSDLMAME_WIN32 -DX64_WINDOWS_ABI
@@ -391,7 +391,7 @@ endif
SDLSRC = $(SRC)/osd/$(OSD)
SDLOBJ = $(OBJ)/osd/$(OSD)
-OBJDIRS += $(SDLOBJ)
+OBJDIRS += $(SDLOBJ) $(OSDOBJ)/modules/sync
#-------------------------------------------------
# OSD core library
@@ -405,7 +405,7 @@ OSDCOREOBJS = \
$(SDLOBJ)/sdlsocket.o \
$(SDLOBJ)/sdlmisc_$(BASE_TARGETOS).o \
$(SDLOBJ)/sdlos_$(SDLOS_TARGETOS).o \
- $(SDLOBJ)/sdlsync_$(SYNC_IMPLEMENTATION).o \
+ $(OSDOBJ)/modules/sync/sync_$(SYNC_IMPLEMENTATION).o \
$(SDLOBJ)/sdlwork.o
# any "main" must be in LIBOSD or else the build will fail!
diff --git a/src/osd/sdl/sdlsync.h b/src/osd/sdl/sdlsync.h
deleted file mode 100644
index 8f27f649816..00000000000
--- a/src/osd/sdl/sdlsync.h
+++ /dev/null
@@ -1,204 +0,0 @@
-//============================================================
-//
-// sdlsync.h - SDL core synchronization functions
-//
-// Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
-// Visit http://mamedev.org for licensing and usage restrictions.
-//
-// SDLMAME by Olivier Galibert and R. Belmont
-//
-//============================================================
-
-#ifndef __SDLSYNC__
-#define __SDLSYNC__
-
-/***************************************************************************
- SYNCHRONIZATION INTERFACES - Events
-***************************************************************************/
-
-/* osd_event is an opaque type which represents a setable/resetable event */
-
-struct osd_event;
-
-
-/*-----------------------------------------------------------------------------
- osd_lock_event_alloc: allocate a new event
-
- Parameters:
-
- manualreset - boolean. If true, the event will be automatically set
- to non-signalled after a thread successfully waited for
- it.
- initialstate - boolean. If true, the event is signalled initially.
-
- Return value:
-
- A pointer to the allocated event.
------------------------------------------------------------------------------*/
-osd_event *osd_event_alloc(int manualreset, int initialstate);
-
-
-/*-----------------------------------------------------------------------------
- osd_event_wait: wait for an event to be signalled
-
- Parameters:
-
- event - The event to wait for. If the event is in signalled state, the
- function returns immediately. If not it will wait for the event
- to become signalled.
- timeout - timeout in osd_ticks
-
- Return value:
-
- TRUE: The event was signalled
- FALSE: A timeout occurred
------------------------------------------------------------------------------*/
-int osd_event_wait(osd_event *event, osd_ticks_t timeout);
-
-
-/*-----------------------------------------------------------------------------
- osd_event_reset: reset an event to non-signalled state
-
- Parameters:
-
- event - The event to set to non-signalled state
-
- Return value:
-
- None
------------------------------------------------------------------------------*/
-void osd_event_reset(osd_event *event);
-
-
-/*-----------------------------------------------------------------------------
- osd_event_set: set an event to signalled state
-
- Parameters:
-
- event - The event to set to signalled state
-
- Return value:
-
- None
-
- Notes:
-
- All threads waiting for the event will be signalled.
------------------------------------------------------------------------------*/
-void osd_event_set(osd_event *event);
-
-
-/*-----------------------------------------------------------------------------
- osd_event_free: free the memory and resources associated with an osd_event
-
- Parameters:
-
- event - a pointer to a previously allocated osd_event.
-
- Return value:
-
- None.
------------------------------------------------------------------------------*/
-void osd_event_free(osd_event *event);
-
-
-/***************************************************************************
- SYNCHRONIZATION INTERFACES - Threads
-***************************************************************************/
-
-/* osd_thread is an opaque type which represents a thread */
-struct osd_thread;
-
-
-/* osd_thread_callback is a callback function that will be called from the thread */
-typedef void *(*osd_thread_callback)(void *param);
-
-
-/*-----------------------------------------------------------------------------
- osd_thread_create: create a new thread
-
- Parameters:
-
- callback - The callback function to be called once the thread is up
- cbparam - The parameter to pass to the callback function.
-
- Return value:
-
- A pointer to the created thread.
------------------------------------------------------------------------------*/
-osd_thread *osd_thread_create(osd_thread_callback callback, void *cbparam);
-
-
-/*-----------------------------------------------------------------------------
- osd_thread_adjust_priority: adjust priority of a thread
-
- Parameters:
-
- thread - A pointer to a previously created thread.
- adjust - signed integer to add to the thread priority
-
- Return value:
-
- TRUE on success, FALSE on failure
------------------------------------------------------------------------------*/
-int osd_thread_adjust_priority(osd_thread *thread, int adjust);
-
-
-/*-----------------------------------------------------------------------------
- osd_thread_cpu_affinity: change cpu affinity of a thread
-
- Parameters:
-
- thread - A pointer to a previously created thread
- or NULL for main thread
- mask - bitmask to which cpus to bind
- i.e. 0x01 1st cpu, 0x02, 2nd cpu, 0x04 3rd cpu
-
- Return value:
-
- TRUE on success, FALSE on failure
------------------------------------------------------------------------------*/
-int osd_thread_cpu_affinity(osd_thread *thread, UINT32 mask);
-
-
-/*-----------------------------------------------------------------------------
- osd_thread_wait_free: wait for thread to finish and free resources
-
- Parameters:
-
- thread - A pointer to a previously created thread.
-
- Return value:
-
- None.
------------------------------------------------------------------------------*/
-void osd_thread_wait_free(osd_thread *thread);
-
-/*-----------------------------------------------------------------------------
- osd_process_kill: kill the current process
-
- Parameters:
-
- None.
-
- Return value:
-
- None.
------------------------------------------------------------------------------*/
-void osd_process_kill(void);
-
-//============================================================
-// Scalable Locks
-//============================================================
-
-struct osd_scalable_lock;
-
-osd_scalable_lock *osd_scalable_lock_alloc(void);
-
-INT32 osd_scalable_lock_acquire(osd_scalable_lock *lock);
-
-void osd_scalable_lock_release(osd_scalable_lock *lock, INT32 myslot);
-
-void osd_scalable_lock_free(osd_scalable_lock *lock);
-
-#endif /* __SDLSYNC__ */
diff --git a/src/osd/sdl/sdlsync_win32.c b/src/osd/sdl/sdlsync_win32.c
deleted file mode 100644
index 72f729d6937..00000000000
--- a/src/osd/sdl/sdlsync_win32.c
+++ /dev/null
@@ -1,12 +0,0 @@
-//============================================================
-//
-// sdlsync.c - SDL core synchronization functions
-//
-// Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team.
-// Visit http://mamedev.org for licensing and usage restrictions.
-//
-// SDLMAME by Olivier Galibert and R. Belmont
-//
-//============================================================
-
-#include "../windows/winsync.c"
diff --git a/src/osd/sdl/sdlwork.c b/src/osd/sdl/sdlwork.c
index a5d1a32644a..d07533245a6 100644
--- a/src/osd/sdl/sdlwork.c
+++ b/src/osd/sdl/sdlwork.c
@@ -11,13 +11,6 @@
#if defined(SDLMAME_NOASM)
-/* must be exported
- * FIXME: NOASM should be taken care of in sdlsync.c
- * This is not really a sound solution.
- */
-
-int osd_num_processors = 0;
-
#include "../osdmini/miniwork.c"
#else
@@ -25,7 +18,7 @@ int osd_num_processors = 0;
#include "osdcore.h"
#include "osinline.h"
-#include "sdlsync.h"
+#include "modules/sync/osdsync.h"
#include "sdlos.h"
#include "eminline.h"
@@ -65,8 +58,6 @@ int osd_num_processors = 0;
#define end_timing(v) do { } while (0)
#endif
-
-
//============================================================
// TYPE DEFINITIONS
//============================================================
diff --git a/src/osd/sdl/watchdog.h b/src/osd/sdl/watchdog.h
index 1d370ec4ac0..fbb3410eb95 100644
--- a/src/osd/sdl/watchdog.h
+++ b/src/osd/sdl/watchdog.h
@@ -11,7 +11,7 @@
//
//============================================================
-#include "sdlsync.h"
+#include "modules/sync/osdsync.h"
class watchdog
{
diff --git a/src/osd/sdl/window.h b/src/osd/sdl/window.h
index b33cd418ac0..a666b984674 100644
--- a/src/osd/sdl/window.h
+++ b/src/osd/sdl/window.h
@@ -15,7 +15,7 @@
#include "sdlinc.h"
#include "video.h"
#include "render.h"
-#include "sdlsync.h"
+#include "modules/sync/osdsync.h"
#include "osd_opengl.h"
#include "osdsdl.h"
diff --git a/src/osd/windows/osinline.h b/src/osd/windows/osinline.h
index 3e28c982cf3..8299cbe15ca 100644
--- a/src/osd/windows/osinline.h
+++ b/src/osd/windows/osinline.h
@@ -19,6 +19,26 @@
#include "eivc.h"
#endif
+#if __GNUC__ && defined(__i386__) && !defined(__x86_64)
+#undef YieldProcessor
+#endif
+
+#ifndef YieldProcessor
+#ifdef __GNUC__
+INLINE void osd_yield_processor(void)
+{
+ __asm__ __volatile__ ( "rep; nop" );
+}
+#else
+INLINE void osd_yield_processor(void)
+{
+ __asm { rep nop }
+}
+#endif
+#else
+#define osd_yield_processor YieldProcessor
+#endif
+
INT32 win_compare_exchange32(INT32 volatile *ptr, INT32 compare, INT32 exchange);
INT32 win_atomic_exchange32(INT32 volatile *ptr, INT32 exchange);
INT32 win_atomic_add32(INT32 volatile *ptr, INT32 delta);
diff --git a/src/osd/windows/windows.mak b/src/osd/windows/windows.mak
index ed1c6f47a2d..f268ade1e8b 100644
--- a/src/osd/windows/windows.mak
+++ b/src/osd/windows/windows.mak
@@ -84,7 +84,7 @@ WINOBJ = $(OBJ)/osd/$(OSD)
OSDSRC = $(SRC)/osd
OSDOBJ = $(OBJ)/osd
-OBJDIRS += $(WINOBJ)
+OBJDIRS += $(WINOBJ) $(OSDOBJ)/modules/sync
ifdef USE_QTDEBUG
OBJDIRS += $(OSDOBJ)/modules/debugger/qt
@@ -339,7 +339,7 @@ OSDCOREOBJS = \
$(WINOBJ)/windir.o \
$(WINOBJ)/winfile.o \
$(WINOBJ)/winmisc.o \
- $(WINOBJ)/winsync.o \
+ $(OSDOBJ)/modules/sync/sync_windows.o \
$(WINOBJ)/wintime.o \
$(WINOBJ)/winutf8.o \
$(WINOBJ)/winutil.o \
diff --git a/src/osd/windows/winmain.c b/src/osd/windows/winmain.c
index ced07aa9be7..e36ab212cb1 100644
--- a/src/osd/windows/winmain.c
+++ b/src/osd/windows/winmain.c
@@ -219,8 +219,6 @@ private:
// this line prevents globbing on the command line
int _CRT_glob = 0;
-
-
//**************************************************************************
// LOCAL VARIABLES
//**************************************************************************
diff --git a/src/osd/windows/winwork.c b/src/osd/windows/winwork.c
index 3ec044864ec..c55511a6446 100644
--- a/src/osd/windows/winwork.c
+++ b/src/osd/windows/winwork.c
@@ -20,11 +20,13 @@
// MAME headers
#include "osdcore.h"
-#include "winsync.h"
+#include "modules/sync/osdsync.h"
#include "winos.h"
#include "eminline.h"
+#include "osinline.h"
+
//============================================================
// DEBUGGING
@@ -57,28 +59,6 @@
#define end_timing(v) do { } while (0)
#endif
-#if __GNUC__ && defined(__i386__) && !defined(__x86_64)
-#undef YieldProcessor
-#endif
-
-#ifndef YieldProcessor
-#ifdef __GNUC__
-INLINE void osd_yield_processor(void)
-{
- __asm__ __volatile__ ( "rep; nop" );
-}
-#else
-INLINE void osd_yield_processor(void)
-{
- __asm { rep nop }
-}
-#endif
-#else
-#define osd_yield_processor YieldProcessor
-#endif
-
-
-
//============================================================
// TYPE DEFINITIONS
//============================================================