CVS: winex/scheduler client.c, 1.53, 1.54 process.c, 1.59, 1.60
[email protected] 31 Jul 2007 20:06:16 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex/scheduler client.c,1.53,1.54 process.c,1.59,1.60Update of /var/lib/cvsd/cvsroot/winex/scheduler
In directory agravaine:/tmp/cvs-serv3419/scheduler
Modified Files:
client.c process.c
Log Message:
Refactor SHM server to handle both POSIX and SYSV IPC.
Add support for SHM server on Mac OS X.
Index: client.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/scheduler/client.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- client.c 31 Jul 2007 19:58:39 -0000 1.53
+++ client.c 31 Jul 2007 20:06:14 -0000 1.54
@@ -92,7 +92,7 @@
extern alloc_server_memory_fcn alloc_server_memory;
extern free_server_memory_fcn free_server_memory;
-typedef void* (*get_server_shared_memory_area_fcn)( const char* wineserver_exe_name, size_t shm_size, void *shm_addr, size_t shm_res_size, void *shm_res_addr );
+typedef void* (*get_server_shared_memory_area_fcn)( int shm_server_type, const char* wineserver_exe_name, size_t shm_size, void *shm_addr, size_t shm_res_size, void *shm_res_addr );
static get_server_shared_memory_area_fcn get_server_shared_memory_area;
typedef void (*shared_server_set_debug_level_fcn)( int debuglevel );
@@ -107,7 +107,11 @@
int hit, int signaled );
shared_server_complete_poll_fcn shared_server_complete_poll;
+#ifdef __APPLE__
+static const char wineserver_so_name[] = "libwineserver.dylib";
+#else
static const char wineserver_so_name[] = "libwineserver.so";
+#endif
static const char shared_server_entry_fcn_name[] = "shared_server_call";
static const char get_server_shared_memory_area_fcn_name[] = "get_server_shared_memory_area";
static const char shared_server_data_name[] = "shared_memory_data_area";
@@ -290,7 +294,8 @@
/* Perform any required setup to allow communication and data exchange with the
* shared memory wineserver.
*/
-void setup_shared_memory_wineserver( size_t shm_size, void *shm_addr )
+void setup_shared_memory_wineserver( int shm_type, size_t shm_size,
+ void *shm_addr )
{
void* so_handle;
char error[256];
@@ -341,8 +346,9 @@
#undef GET_SHM_SERVER_SYMBOL
- server_shared_memory = get_server_shared_memory_area( get_config_dir(),
- shm_size, shm_addr, shm_res_size, shm_res_addr );
+ server_shared_memory =
+ get_server_shared_memory_area (shm_type, get_config_dir (), shm_size,
+ shm_addr, shm_res_size, shm_res_addr);
if( !server_shared_memory )
{
ERR( "can't get shared memory\n" );
Index: process.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/scheduler/process.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- process.c 31 Jul 2007 19:56:08 -0000 1.59
+++ process.c 31 Jul 2007 20:06:14 -0000 1.60
@@ -487,6 +487,7 @@
WINE_MODREF *wm;
HFILE main_file = main_exe_file;
int use_shm;
+ int shm_type;
size_t shm_size;
void *shm_addr;
@@ -544,6 +545,7 @@
use_shm = reply->shm_server;
shm_size = reply->shm_size;
shm_addr = reply->shm_addr;
+ shm_type = reply->shm_type;
}
SERVER_END_REQ;
@@ -556,7 +558,7 @@
if (main_exe_file) CloseHandle( main_exe_file ); /* we no longer need it */
- if( use_shm ) setup_shared_memory_wineserver( shm_size, shm_addr );
+ if (use_shm) setup_shared_memory_wineserver (shm_type, shm_size, shm_addr);
MODULE_DllProcessAttach( NULL, (LPVOID)1 );