From 6044307c3a34be23c407205460aded2a62572c52 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 17 May 2002 03:31:08 +0000 Subject: [PATCH] A few fixes for mingw cross-compilation. --- dlls/Makedll.rules.in | 2 +- dlls/commdlg/filedlg95.c | 4 ++-- dlls/kernel/stress.c | 8 +------- dlls/mpr/wnet.c | 26 ++------------------------ dlls/user/network.c | 1 - dlls/x11drv/x11drv_main.c | 6 +++--- include/winbase.h | 41 ++++++++++------------------------------- library/port.c | 2 ++ memory/environ.c | 21 ++++++++++----------- memory/heap.c | 42 ++++++++++++++++++++++++++++++++++++++++++ scheduler/sysdeps.c | 1 - win32/device.c | 4 +++- 12 files changed, 76 insertions(+), 82 deletions(-) diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in index 86702460c9e..f1df256b7d8 100644 --- a/dlls/Makedll.rules.in +++ b/dlls/Makedll.rules.in @@ -16,7 +16,7 @@ MAINSPEC = $(MODULE:%.dll=%).spec SPEC_DEF = $(MAINSPEC).def ALL_OBJS = $(MAINSPEC).o $(SPEC_SRCS:.spec=.spec.o) $(OBJS) $(MODULE).dbg.o ALL_LIBS = $(LIBWINE) $(EXTRALIBS) $(LIBS) -TESTIMPORTS = $(MODULE) $(DELAYIMPORTS) $(IMPORTS) +TESTIMPORTS = $(MODULE:%.dll=%) $(DELAYIMPORTS) $(IMPORTS) all: $(MODULE)$(DLLEXT) diff --git a/dlls/commdlg/filedlg95.c b/dlls/commdlg/filedlg95.c index 9a8a3193e4b..560e0523625 100644 --- a/dlls/commdlg/filedlg95.c +++ b/dlls/commdlg/filedlg95.c @@ -1815,7 +1815,7 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd) if(lpstrFilter) { DWORD len; - _strlwr(lpstrFilter); /* lowercase */ + CharLowerA(lpstrFilter); /* lowercase */ len = MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, NULL, 0 ); fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) ); MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, @@ -1856,7 +1856,7 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode) if((int)lpstrFilter != CB_ERR) { DWORD len; - _strlwr(lpstrFilter); /* lowercase */ + CharLowerA(lpstrFilter); /* lowercase */ len = MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, NULL, 0 ); fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) ); MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, diff --git a/dlls/kernel/stress.c b/dlls/kernel/stress.c index b25cd39c2fa..34ea66fff49 100644 --- a/dlls/kernel/stress.c +++ b/dlls/kernel/stress.c @@ -16,7 +16,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include #include "windef.h" #include "wine/windef16.h" #include "wine/debug.h" @@ -107,12 +106,7 @@ void WINAPI FreeAllUserMem(void) INT16 WINAPI GetFreeFileHandles(void) { TRACE("GetFreeFileHandles\n"); - -#ifndef OPEN_MAX - return _POSIX_OPEN_MAX; -#else - return OPEN_MAX; -#endif + return 256; /* can't have more than 256 16-bit handles */ } /*********************************************************************** diff --git a/dlls/mpr/wnet.c b/dlls/mpr/wnet.c index 39651e53ef3..367cc74dae6 100644 --- a/dlls/mpr/wnet.c +++ b/dlls/mpr/wnet.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include "winbase.h" @@ -468,29 +467,8 @@ DWORD WINAPI WNetGetUniversalNameW ( LPCWSTR lpLocalPath, DWORD dwInfoLevel, */ DWORD WINAPI WNetGetUserA( LPCSTR lpName, LPSTR lpUserID, LPDWORD lpBufferSize ) { - struct passwd *pwd = getpwuid(getuid()); - - FIXME( "(%s, %p, %p): mostly stub\n", - debugstr_a(lpName), lpUserID, lpBufferSize ); - - if (pwd) - { - if ( strlen(pwd->pw_name) + 1 > *lpBufferSize ) - { - *lpBufferSize = strlen(pwd->pw_name) + 1; - - SetLastError(ERROR_MORE_DATA); - return ERROR_MORE_DATA; - } - - strcpy( lpUserID, pwd->pw_name ); - *lpBufferSize = strlen(pwd->pw_name) + 1; - return WN_SUCCESS; - } - - /* FIXME: wrong return value */ - SetLastError(ERROR_NO_NETWORK); - return ERROR_NO_NETWORK; + if (GetUserNameA( lpUserID, lpBufferSize )) return WN_SUCCESS; + return GetLastError(); } /***************************************************************** diff --git a/dlls/user/network.c b/dlls/user/network.c index ee6f9c6786c..11c8502203d 100644 --- a/dlls/user/network.c +++ b/dlls/user/network.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include "winbase.h" diff --git a/dlls/x11drv/x11drv_main.c b/dlls/x11drv/x11drv_main.c index 428462aeb8a..3731c87fe4c 100644 --- a/dlls/x11drv/x11drv_main.c +++ b/dlls/x11drv/x11drv_main.c @@ -138,7 +138,7 @@ static int error_handler( Display *display, XErrorEvent *error_evt ) */ static void lock_tsx11(void) { - RtlEnterCriticalSection( &X11DRV_CritSection ); + EnterCriticalSection( &X11DRV_CritSection ); } /*********************************************************************** @@ -146,7 +146,7 @@ static void lock_tsx11(void) */ static void unlock_tsx11(void) { - RtlLeaveCriticalSection( &X11DRV_CritSection ); + LeaveCriticalSection( &X11DRV_CritSection ); } /*********************************************************************** @@ -431,7 +431,7 @@ static void process_detach(void) /* restore TSX11 locking */ wine_tsx11_lock = old_tsx11_lock; wine_tsx11_unlock = old_tsx11_unlock; - RtlDeleteCriticalSection( &X11DRV_CritSection ); + DeleteCriticalSection( &X11DRV_CritSection ); } diff --git a/include/winbase.h b/include/winbase.h index e8b350c5756..9eeccd1c414 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1016,45 +1016,24 @@ BOOL WINAPI GetVersionExW(OSVERSIONINFOW*); /*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/ -/* FIXME: need to use defines because we don't have proper imports everywhere yet */ -#ifndef have_proper_imports -LONG WINAPI RtlEnterCriticalSection( CRITICAL_SECTION *crit ); -LONG WINAPI RtlLeaveCriticalSection( CRITICAL_SECTION *crit ); -LONG WINAPI RtlDeleteCriticalSection( CRITICAL_SECTION *crit ); -BOOL WINAPI RtlTryEnterCriticalSection( CRITICAL_SECTION *crit ); -PVOID WINAPI RtlAllocateHeap(HANDLE,ULONG,ULONG); -BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID); -PVOID WINAPI RtlReAllocateHeap(HANDLE,ULONG,PVOID,ULONG); -ULONG WINAPI RtlSizeHeap(HANDLE,ULONG,PVOID); -#define HeapAlloc(heap,flags,size) RtlAllocateHeap(heap,flags,size) -#define HeapFree(heap,flags,ptr) RtlFreeHeap(heap,flags,ptr) -#define HeapReAlloc(heap,flags,ptr,size) RtlReAllocateHeap(heap,flags,ptr,size) -#define HeapSize(heap,flags,ptr) RtlSizeHeap(heap,flags,ptr) -#define EnterCriticalSection(crit) RtlEnterCriticalSection(crit) -#define LeaveCriticalSection(crit) RtlLeaveCriticalSection(crit) -#define DeleteCriticalSection(crit) RtlDeleteCriticalSection(crit) -#define TryEnterCriticalSection(crit) RtlTryEnterCriticalSection(crit) -#else LPVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD); BOOL WINAPI HeapFree(HANDLE,DWORD,LPVOID); LPVOID WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,DWORD); DWORD WINAPI HeapSize(HANDLE,DWORD,LPVOID); +void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit); +BOOL WINAPI InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *,DWORD); void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit); BOOL WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit); -#endif - -void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit); -BOOL WINAPI InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION *,DWORD); -void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit); -BOOL WINAPI GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD); -DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR); -void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD); -BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD); -BOOL WINAPI TerminateProcess(HANDLE,DWORD); -BOOL WINAPI TerminateThread(HANDLE,DWORD); -BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD); +void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit); +BOOL WINAPI GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD); +DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR); +void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD); +BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD); +BOOL WINAPI TerminateProcess(HANDLE,DWORD); +BOOL WINAPI TerminateThread(HANDLE,DWORD); +BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD); /* GetBinaryType return values. */ diff --git a/library/port.c b/library/port.c index 6d15147d78a..96f04129c4e 100644 --- a/library/port.c +++ b/library/port.c @@ -135,6 +135,8 @@ size_t getpagesize(void) { # ifdef __svr4__ return sysconf(_SC_PAGESIZE); +# elif defined(__i386__) + return 4096; # else # error Cannot get the page size on this platform # endif diff --git a/memory/environ.c b/memory/environ.c index b682f1dc9ec..b74c5c12f5c 100644 --- a/memory/environ.c +++ b/memory/environ.c @@ -37,7 +37,7 @@ /* Win32 process environment database */ typedef struct _ENVDB { - LPSTR environ; /* 00 Process environment strings */ + LPSTR env; /* 00 Process environment strings */ DWORD unknown1; /* 04 Unknown */ LPSTR cmd_line; /* 08 Command line */ LPSTR cur_dir; /* 0c Current directory */ @@ -165,7 +165,7 @@ static BOOL build_environment(void) /* Now allocate the environment */ if (!(p = HeapAlloc( GetProcessHeap(), 0, size ))) return FALSE; - current_envdb.environ = p; + current_envdb.env = p; env_sel = SELECTOR_AllocBlock( p, 0x10000, WINE_LDT_FLAGS_DATA ); /* And fill it with the Unix environment */ @@ -487,7 +487,7 @@ LPWSTR WINAPI GetCommandLineW(void) */ LPSTR WINAPI GetEnvironmentStringsA(void) { - return current_envdb.environ; + return current_envdb.env; } @@ -500,10 +500,10 @@ LPWSTR WINAPI GetEnvironmentStringsW(void) LPWSTR ret; RtlAcquirePebLock(); - size = HeapSize( GetProcessHeap(), 0, current_envdb.environ ); + size = HeapSize( GetProcessHeap(), 0, current_envdb.env ); if ((ret = HeapAlloc( GetProcessHeap(), 0, size * sizeof(WCHAR) )) != NULL) { - LPSTR pA = current_envdb.environ; + LPSTR pA = current_envdb.env; LPWSTR pW = ret; while (size--) *pW++ = (WCHAR)(BYTE)*pA++; } @@ -517,7 +517,7 @@ LPWSTR WINAPI GetEnvironmentStringsW(void) */ BOOL WINAPI FreeEnvironmentStringsA( LPSTR ptr ) { - if (ptr != current_envdb.environ) + if (ptr != current_envdb.env) { SetLastError( ERROR_INVALID_PARAMETER ); return FALSE; @@ -549,7 +549,7 @@ DWORD WINAPI GetEnvironmentVariableA( LPCSTR name, LPSTR value, DWORD size ) return 0; } RtlAcquirePebLock(); - if ((p = ENV_FindVariable( current_envdb.environ, name, strlen(name) ))) + if ((p = ENV_FindVariable( current_envdb.env, name, strlen(name) ))) { ret = strlen(p); if (size <= ret) @@ -597,7 +597,7 @@ BOOL WINAPI SetEnvironmentVariableA( LPCSTR name, LPCSTR value ) BOOL ret = FALSE; RtlAcquirePebLock(); - env = p = current_envdb.environ; + env = p = current_envdb.env; /* Find a place to insert the string */ @@ -634,7 +634,7 @@ BOOL WINAPI SetEnvironmentVariableA( LPCSTR name, LPCSTR value ) strcat( p, "=" ); strcat( p, value ); } - current_envdb.environ = new_env; + current_envdb.env = new_env; ret = TRUE; done: @@ -684,8 +684,7 @@ DWORD WINAPI ExpandEnvironmentStringsA( LPCSTR src, LPSTR dst, DWORD count ) if ((p = strchr( src + 1, '%' ))) { len = p - src - 1; /* Length of the variable name */ - if ((var = ENV_FindVariable( current_envdb.environ, - src + 1, len ))) + if ((var = ENV_FindVariable( current_envdb.env, src + 1, len ))) { src += len + 2; /* Skip the variable name */ len = strlen(var); diff --git a/memory/heap.c b/memory/heap.c index c3fbd5be70a..171599d2b26 100644 --- a/memory/heap.c +++ b/memory/heap.c @@ -779,3 +779,45 @@ BOOL16 WINAPI Local32Next16( LOCAL32ENTRY *pLocal32Entry ) return FALSE; } + +/* FIXME: these functions are needed for dlls that aren't properly separated yet */ + +LPVOID WINAPI HeapAlloc( HANDLE heap, DWORD flags, DWORD size ) +{ + return RtlAllocateHeap( heap, flags, size ); +} + +BOOL WINAPI HeapFree( HANDLE heap, DWORD flags, LPVOID ptr ) +{ + return RtlFreeHeap( heap, flags, ptr ); +} + +LPVOID WINAPI HeapReAlloc( HANDLE heap, DWORD flags, LPVOID ptr, DWORD size ) +{ + return RtlReAllocateHeap( heap, flags, ptr, size ); +} + +DWORD WINAPI HeapSize( HANDLE heap, DWORD flags, LPVOID ptr ) +{ + return RtlSizeHeap( heap, flags, ptr ); +} + +void WINAPI EnterCriticalSection( CRITICAL_SECTION *crit ) +{ + RtlEnterCriticalSection( crit ); +} + +BOOL WINAPI TryEnterCriticalSection( CRITICAL_SECTION *crit ) +{ + return RtlTryEnterCriticalSection( crit ); +} + +void WINAPI DeleteCriticalSection( CRITICAL_SECTION *crit ) +{ + RtlDeleteCriticalSection( crit ); +} + +void WINAPI LeaveCriticalSection( CRITICAL_SECTION *crit ) +{ + RtlLeaveCriticalSection( crit ); +} diff --git a/scheduler/sysdeps.c b/scheduler/sysdeps.c index 162910d8496..b3320e739bd 100644 --- a/scheduler/sysdeps.c +++ b/scheduler/sysdeps.c @@ -25,7 +25,6 @@ #include #include #include -#include #ifdef HAVE_SYS_SYSCALL_H # include #endif diff --git a/win32/device.c b/win32/device.c index d9d18028431..2bab5028978 100644 --- a/win32/device.c +++ b/win32/device.c @@ -44,7 +44,9 @@ #include "wine/debug.h" /* int 13 stuff */ -#include +#ifdef HAVE_SYS_IOCTL_H +# include +#endif #include #ifdef linux # include -- 2.11.4.GIT