Sweden-Number/scheduler/semaphore.c

220 lines
6.1 KiB
C
Raw Normal View History

Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
/*
* Win32 semaphores
*
* Copyright 1998 Alexandre Julliard
*/
#include <assert.h>
#include "windows.h"
#include "winerror.h"
#include "k32obj.h"
#include "process.h"
#include "thread.h"
#include "heap.h"
typedef struct
{
K32OBJ header;
THREAD_QUEUE wait_queue;
LONG count;
LONG max;
} SEMAPHORE;
static BOOL32 SEMAPHORE_Signaled( K32OBJ *obj, DWORD thread_id );
Release 980118 Sun Jan 18 17:05:58 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [include/stackframe.h] [tools/build.c] Some cleanups in stack frame building. * [misc/port.c] Implemented clone() wrapper for libc5 users. * [scheduler/mutex.c] [scheduler/synchro.c] Implemented abandoned mutexes. * [scheduler/process.c] [scheduler/thread.c] We now create a process and a thread structure as soon as possible during initialization. * [scheduler/thread.c] [scheduler/sysdeps.c] Moved system-specific thread handling to sysdeps.c. Fri Jan 16 10:45:15 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [graphics/ddraw.c][include/ddraw.h] Surface handling enhanced. Some stuff already works ;) * [multimedia/dsound.c][include/dsound.h] Implemented using the Open Sound System. Slowly starts to work (sounds terrible for some programs). * [configure.in][multimedia/audio.c][include/config.h.in] Added check for OpenSoundSystem, fixed -lXxf86dga check. Replaced OS #ifdefs by #ifdef HAVE_OSS in mm/audio.c. * [if1632/relay.c][relay32/relay386.c] Do not print control characters for 'str' or 'wstr' args. * [misc/registry.c] "" seems to equals NULL in keynames. Replace where needed. Seems to help the win95 regedit.exe... * [win32/newfns.c] Implemented QueryPerformance* using gettimeofday(2) (should be done using the pentium timers probably). * [tools/ipcl] Removed useless open_pipe construct. Sun Jan 11 17:10:02 1998 Huw D M Davies <h.davies1@physics.oxford.ac.uk> * [objects/region.c] [include/region.h] [graphics/x11drv/clipping.c] Regions are now internal to Wine. The basis of this code is taken from the X11 distribution. GetRegionData() is implemented as is ExtCreateRegion() (without Xforms). CreatePolyPolygonRgn() should behave correctly now. * [objects/metafile.c] [graphics/metafiledrv/graphics.c] [graphics/metafiledrv/init.c] [include/metafile.h] [include/metafiledrv.h] Playback of META_CREATEREGION should now work. Implemented recording of META_CREATEREGION and META_PAINTREGION. * [graphics/x11drv/graphics.c] FillRgn() (and therefore its friends) respect logical co-ords. Wed Jan 7 01:21:45 1998 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] [include/acconfig.h] [tools/build.c] Now checking whether to use .string or .ascii. * [configure.in] [include/acconfig.h] [scheduler/critsection.c] Defining union semun if this is not available from header files. * [misc/lstr.c] Moved wine's own header files below <wctype.h> to avoid parse error on Solaris. Sun Jan 4 15:38:07 1998 Andrew Taylor <ataylor@cadvision.com> * [multimedia/mmsystem.c] [multimedia/mmio.c] Implemented mmioSendMessage and rearranged the mmio subsystem in terms of this function. Wed Dec 24 00:51:29 1997 Charles Duffy <cduffy@bigfoot.com> * [windows/clipboard.c] [relay32/user32.spec] GetPriorityClipboardFormat32 now has something other than just a stub. I have no idea if it works (can't test until SetClipboardData is finished) but HEdit likes things a lot more this way.
1998-01-18 19:01:49 +01:00
static BOOL32 SEMAPHORE_Satisfied( K32OBJ *obj, DWORD thread_id );
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
static void SEMAPHORE_AddWait( K32OBJ *obj, DWORD thread_id );
static void SEMAPHORE_RemoveWait( K32OBJ *obj, DWORD thread_id );
static void SEMAPHORE_Destroy( K32OBJ *obj );
const K32OBJ_OPS SEMAPHORE_Ops =
{
SEMAPHORE_Signaled, /* signaled */
SEMAPHORE_Satisfied, /* satisfied */
SEMAPHORE_AddWait, /* add_wait */
SEMAPHORE_RemoveWait, /* remove_wait */
Release 980301 Sun Mar 1 10:45:23 1998 Andreas Mohr <100.30936@germany.net> * [loader/ne_image.c] Fixed problem with weird DLLs (NE_FFLAGS_SINGLEDATA && DGROUP = 0). * [msdos/dosmem.c] Export address for __0000H, too. * [msdos/dpmi.c] Changed MemAlloc functions to return less fragmented addresses. Sat Feb 28 18:50:12 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [scheduler/process.c] [scheduler/sysdeps.c] Don't use %fs register before threading initialization. Sat Feb 28 14:04:56 1998 Kristian Nielsen <kristian.nielsen@risoe.dk> * [configure.in] [include/acconfig.h] Autoconf macro to check for non-reentrant X libraries. * [windows/winpos.c] In SetWindowPos32(), do not cause WM_SIZE messages when the SWP_NOSIZE flag is specified. This fixes the division-by-zero in Borland C++ 4.0 "Open Project" menu item. Sat Feb 28 13:11:26 1998 James Moody <013263m@dragon.acadiau.ca> * [ole/ole2nls.c] Changed "English" values from German to English. * [files/dos_fs.c] Fixed off-by-one month bug. Fri Feb 27 22:12:01 1998 Douglas Ridgway <ridgway@winehq.com> * [windows/win.c] Fix winelib class menu loading bug. * [include/module.h] [loader/module.c] LoadModule32 should be implemented in terms of CreateProcess. * [programs/view/*] Metafile viewer sample program. * [documentation/wine.texinfo] [documentation/Makefile.in] Improvements and additions, HTML target. Fri Feb 27 04:27:48 1998 Dimitrie O. Paun <dimi@cs.toronto.edu> * [*/*] Switched to the new debug messages interface. For more information please refer to documentation/debug-msgs. Because the new scheme introduces a new semantic level, I had to manually do through about 530 dprintf_xxx! The rest of about 2400 where transformed via a script. Because of the large number of changes that I had to do, some may have not come out as nicely as I wanted them. If this is the case, please let me know. There is a lot of work left to do: -- a few hundred printf's to be converted -- about 2300 fprintf's to be converted -- about 600 FIXME's to be transformed The problem is that in the above mentioned cases, a lot of manual intervention is required because a lot of the information is missing. There are also a lot of other things to be done to the interface and so forth. I have now ideas for a at least a month worth of full time work :) I will proceed with many changes in the next few releases, so please do not start modifing things because there will be a hell of a lot of conflicts. If you have ideas that you want to integrate or you want to work on different things, please coordinate with me. Thu Feb 26 13:04:29 1998 David Lee Lambert <lamber45@egr.msu.edu> * [ole/ole2nls.c] [include/windows.h] First try at OLE date- and time-formatting functions. Wed Feb 25 11:20:35 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [files/*.c] Changed dos device handling, added 'CON' devicehandling. * [graphics/ddraw.c] Bug fixes, some additions. * [if1632/builtin.c][loader/module.c][library/winestub.c] Small hack so we don't need a dummy BUILTIN_LoadModule in winestub.c. * [ole/*][relay32/ole32.spec][if1632/storage.spec] storage.dll started. winword loads documents (saving doesn't work yet, dunno why). Several ole additions, some cleanups and bugfixes. IMalloc16 implemented. * [loader/pe_image.c] Added some comments, fixed circular dll references, fixed modref ordering, fixed tls allocation. * [memory/global.c] Added validity checks before every GET_ARENA_PTR. (several functions rely on Global* return values on invalid handles, like IsTask). Implemented GlobalUnlockFree16. * [memory/virtual.c] Replaced dprintf_virtual by fprintf, so we can do 'info map' again in the debugger. Increase read linesize for Linux2.1 cases. * [misc/cpu.c][misc/registry.c] Moved cpu registry initialization to misc/cpu.c. * [multimedia/dsound.c] Enhanced, replaced GETOSPACE bufferingcheck by SETFRAGMENT. * [relay32/crtdll.spec][relay32/ntdll.spec] Replaced some ptr by respective 'str' and 'wstr' arguments for libc functions. * [scheduler/thread.c] Added some sanity checks to stackallocation, tlshandling fixed. * [tools/build.c] Fixed cdecl argumenttype order (was reversed). * [win32/ordinals.c] Implemented KERNEL_449. * [windows/dinput.c] Some fixes, needs much more work. Tomb Raider2 works with keyboard ;) Tue Feb 24 20:46:37 1998 James Juran <jrj120@psu.edu> * [windows/win.c] Fixed USER32 ordinal numbers in documentation. Sat Feb 21 12:30:38 1998 John Richardson <jrichard@zko.dec.com> * [files/file.c] [include/k32obj.h] [memory/virtual.c] [scheduler/critsection.c] [scheduler/event.c] [scheduler/handle.c] [scheduler/k32obj.c] [scheduler/mutex.c] [scheduler/process.c] [scheduler/semaphore.c] [scheduler/thread.c] Added generic k32obj read and write routines for k32objs that support I/O. * [documentation/console] Updated console docs. * [win32/console.c] Make console work like a k32obj that supports I/O. * [include/windows.h] Make WriteFile and ReadFile take HANDLE32 for handle. Sun Feb 15 14:07:07 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu> * [controls/menu.c] [misc/ver.c] [multimedia/dsound.c] [multimedia/joystick.c] [windows/dialog.c] Modified some dprintf_xxx's to prepare them for a new dprintf_ scheme. Basically, I changed the dprintf's that outputed a line with many dprintf calls to do just one dprintf call.
1998-03-01 21:05:02 +01:00
NULL, /* read */
NULL, /* write */
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
SEMAPHORE_Destroy /* destroy */
};
/***********************************************************************
* CreateSemaphore32A (KERNEL32.174)
*/
HANDLE32 WINAPI CreateSemaphore32A( SECURITY_ATTRIBUTES *sa, LONG initial,
LONG max, LPCSTR name )
{
HANDLE32 handle;
SEMAPHORE *sem;
/* Check parameters */
if ((max <= 0) || (initial < 0) || (initial > max))
{
SetLastError( ERROR_INVALID_PARAMETER );
return INVALID_HANDLE_VALUE32;
}
SYSTEM_LOCK();
sem = (SEMAPHORE *)K32OBJ_Create( K32OBJ_SEMAPHORE, sizeof(*sem),
Release 980413 Sun Apr 12 12:22:23 1997 Andreas Mohr <100.30936@germany.net> * [files/drive.c] Fixed "no free space" problem with partition sizes between 1 and 2 GB (cluster_sectors may not exceed 0x40). * [windows/msgbox.c] [if1632/user.spec] [include/windows.h] Implemented MessageBoxIndirect16, corrected MSGBOXPARAMS16. * [loader/task.c] DOS environment strings may never exceed 127 chars -> truncate Unix environment strings if necessary. Sun Apr 12 02:51:44 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu> * [files/*.c] All fprintf statements were converted to appropriate debug messages. * [tools/find_debug_channels] Updated comments at the beginning of the file. Sat Apr 11 15:27:21 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [loader/module.c] [loader/task.c] [scheduler/process.c] Moved some code around to prepare the ground for CreateProcess(). * [memory/environ.c] [loader/task.c] Moved Win32 environment strings functions to environ.c. Unified Win16 and Win32 environment management. * [scheduler/handle.c] [scheduler/k32obj.c] [scheduler/*.c] Implemented handle inheritance and DuplicateHandle(). * [scheduler/thread.c] Create a 16-bit stack for all threads. * [windows/dialog.c] Implemented DIALOGEX resource format. Fri Apr 10 20:21:51 1998 Marcus Meissner <marcus@mud.de> * [configure.in][include/acconfig.h][*/*][multimedia/*] Cleaned up the OSS detection stuff, added some more checks for headerfiles/functions. Removed a lot of OS specific #ifdefs. Lots of dependend multimedia cleanups. * [loader/pe_image.c] Enhanced comment, added missing reference count increase. * [ole/compobj.c] Replaced broken StringFromGUID2 by working one. * [misc/winsock.c] SO_LINGER uses unsigned 16 bit in Win16 and Win32, but unsigned int (32bit) for UNIX. * [memory/global.c] Allow realloc for lockcount 1 too. Fri Apr 10 15:27:34 1998 Morten Welinder <terra@diku.dk> * [graphics/x11drv/text.c] Handle control characters in trace. Ignore terminating newline. * [multimedia/init.c] (MULTIMEDIA_Init): Correct allocations. * [tools/examine-relay] Tidy up. * [windows/syscolor.c] Change highlight colour from lightblue to lightgray. This looks correct for menus. Fri Apr 10 01:49:58 1998 Douglas Ridgway <ridgway@winehq.com> * [configure.in] [Make.rules.in] Add check for c2man before using it. Fri Apr 10 02:59:21 1998 Douglas Ridgway <ridgway@winehq.com> * [DEVELOPERS-HINTS] Simple description of adding API calls. * [include/wintypes.h] [include/windows.h] Get rid of Winelib16, avoid declaring some illegal functions in Winelib, add prototypes for some enhanced metafile functions, fix GetTextExtentPoint32 declarations. * [relay32/gdi32.spec] [objects/enhmetafile.c] Cosmetic and functional improvements. * [include/wincon.h] [programs/view/*] Fixes, improved compatibility with native compilers. Thu Apr 9 15:48:49 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de> * [win32/kernel32.c] Implemented FT_Thunk / FT_Prolog / FT_Exit / FT_PrologPrime. Fixed Common32ThkLS thunk function. * [tools/build.c] [relay32/relay386.c] [if1632/relay.c] Changed relay code to allow register functions to modify stack layout. * [memory/selector.c] Implemented AllocMappedBuffer / FreeMappedBuffer. * [relay32/kernel32.spec] [if1632/kernel.spec] [win32/ordinals.c] Added names for undocumented functions. * [loader/module.c] Bugfix: LoadLibrary16 should *not* silently load 32-bit DLL. Thu Apr 9 03:54:58 1998 Jim Peterson <jspeter@birch.ee.vt.edu> * [windows/keyboard.c] Fix an erroneous test in TranslateAccelerator{16,32} for the end of the accelerator table. Thu Apr 8 20:36:28 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [misc/crtdll.c] Implement getenv. * [misc/commdlg.c] Make Get[Save/Open]FileName work in most situations. * [misc/lstr.c] Use wvsprintf32A instead of vsprintf in FormatMessage32X * [misc/version] Make NT3.50 a recognised version * [graphics/x11drv/graphics.c] Change the algorithme to draw arcs * [loader/resource.c] Return an empty buffer in LoadString32A if no resource found. * [win32/code_page.c] Try harder to get the right size in MultiByteToWideChar. * [win32/process.c] Call WinExec32 for CreateProcess32A. * [windows/user.c] Install default Int0 Handler in InitApp(). Thu Apr 8 19:29:48 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [misc/imagelist.c] Preliminary fix for drawing selected images. Various improvements. * [controls/progress.c][include/progress.c][include/commctrl.h] Added progress bar messages and styles for IE4.01 (dll version 4.72) compatibility. Fixed led size problem. * [controls/updown.c][include/commctrl.h] Added UDM_GETRANGE32 and UDM_SETRANGE32. * [objects/oembitmaps.c][include/windows.h][include/bitmaps/*] Added Win95 icons and fixed Win95 cursor and restore button bug. Now they should be visible. Sorry!!! * [relay32/comctl32.spec] Added most missing function names. Tue Apr 6 18:48:36 1998 Matthew Becker <mbecker@glasscity.net> * [objects/font.c] [if1632/gdi.spec] GetOutlineTextMetrics: stub * [objects/text.c] GetTextCharset should just call GetTextCharsetInfo. * [misc/mpr.c] [relay32/mpr.spec] WNetCachePassword: stub * [scheduler/thread.c] [relay32/user32.spec] AttachThreadInput: stub Updated documentation. * [objects/palette.c] Updated documentation. Tue Mar 31 17:06:30 1998 James Juran <jrj120@psu.edu> * [*/*.c] Finished fixing USER32 ordinal numbers in function documentation. Mon Mar 30 20:27:38 1998 Morten Welinder <terra@diku.dk> * [misc/debugstr.c] [include/debugstr.h] Moved _dumpstr from relay32/relay386.c. Improved control character handling. * [msdos/int21.c] Implement 215E00 -- get machine name. * [windows/winpos.c] SetWindowPos32: Make an extra sync when mapping managed windows. This makes sure the reconfigure event has been handled. See Mshearts' what's-your-name window. Mon Mar 30 01:13:50 1998 Alexander V. Lukyanov <lav@long.yar.ru> * [Makefile.in] Install includes from TOPSRCDIR.
1998-04-13 14:21:30 +02:00
name, SEMAPHORE_ALL_ACCESS, sa, &handle);
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
if (sem)
{
/* Finish initializing it */
sem->wait_queue = NULL;
sem->count = initial;
sem->max = max;
K32OBJ_DecCount( &sem->header );
}
SYSTEM_UNLOCK();
return handle;
}
/***********************************************************************
* CreateSemaphore32W (KERNEL32.175)
*/
HANDLE32 WINAPI CreateSemaphore32W( SECURITY_ATTRIBUTES *sa, LONG initial,
LONG max, LPCWSTR name )
{
LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name );
HANDLE32 ret = CreateSemaphore32A( sa, initial, max, nameA );
if (nameA) HeapFree( GetProcessHeap(), 0, nameA );
return ret;
}
/***********************************************************************
* OpenSemaphore32A (KERNEL32.545)
*/
HANDLE32 WINAPI OpenSemaphore32A( DWORD access, BOOL32 inherit, LPCSTR name )
{
HANDLE32 handle = 0;
K32OBJ *obj;
SYSTEM_LOCK();
if ((obj = K32OBJ_FindNameType( name, K32OBJ_SEMAPHORE )) != NULL)
{
Release 980809 Sat Aug 8 19:11:46 1998 Marcus Meissner <marcus@jet.franken.de> * [*/*] Added some missing WINAPI and some missing prototypes for functions. * [controls/static.c] Got rid of the MODULE32_LookupHMODULE error showing up for every message box. * [windows/winproc.c] WM_NOTIFY 16->32 mapping (AOL Instant Messenger or however it is called). * [misc/winsock.c] hostent/servent/protoent should not use the same static buffers. (has broken nt3.15 finger.exe which does hp=gethostbyname(), then getservbyname("finger","tcp") and the references hp->h_addr_list[0]). Sat Aug 8 13:21:24 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [include/server.h] [tools/make_requests] [server/request.c] [server/trace.c] Automated part of the client/server request code generation. Added tracing of client/server communication. * [scheduler/*.c] [server/process.c] Added support for server-side handles. * [scheduler/thread.c] Added DLL_THREAD_ATTACH/DETACH notifications. * [configure.in] Added check for -lsocket. * [windows/winproc.c] Return the thunk address in WINPROC_GetProc if the function types don't match. Sat Aug 8 02:44:04 1998 Douglas Ridgway <ridgway@winehq.com> * [windows/winproc.c][windows/win.c][windows/message.c] Documentation for CallWindowProc, SetWindowLong, DispatchMessage, WaitMessage, GetMessage, and PeekMessage. Sat Aug 8 01:00:00 1998 Juergen Schmied <juergen.schmied@metronet.de> * [controls/commctrl.c][controls/widgets.c][include/builtin32.h] [include/commctrl.h][relay32/builtin32.c][relay32/comctl32.spec] [tools/build.c] [relay32/shell32.spec] Added the functionality of the LibMain function. The common controls are properly initialized now. * [controls/treeview.c][memory/atom.c][scheduler/thread.c][windows/class.c] [windows/msgbox.c][windows/win.c] Put TRACE in, put SetLastError() in. * [include/interfaces.h] Added IClassFactory::LockServer. * [include/ole2.h] Added struct for LPOLEMENUGROUPWIDTHS32, HOLEMENU32. * [include/shell.h][include/shlobj.h][misc/shell.c][ole/folders.c] Reorganized and many structs and classes (IShellBrowser,IShellView) added. shell32.dll should work in many cases now. Started SHGetFileInfoA implementeation, rewrote SHGetPathFromIDList32A. New Shell32LibMain started ShellIconCache Implementation. * [misc/shellord.c] Rewrote ILCombine, ILGetSize New stubs SHFind_InitMenuPopup, FileMenu_Create, ShellExecuteEx, SHSetInstanceExplorer, SHGetInstanceExplorer, SHFreeUnusedLibraries. * [include/winerror.h] Class and window related error codes added. * [memory/heap.c] Changed lstrlen32A to strlen to get rid of milions of TRACE lines. * [misc/ddeml.c] First lines for DdeCreateStringHandle32A / DdeFreeStringHandle32. * [misc/network.c][relay32/mpr.spec] Fixed some bugs, changed ordinals. * [windows/class.c] Workarounds for incorrect hInstance handling. Fixes parts of MSWord95/Excel95 and Money95. Thu Aug 6 21:05:35 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [windows/nonclient.c][misc/tweak.c][include/tweak.h] [documentation/win95look] Removed some tweak variables. They are no longer needed. * [files/dos_fs.c] Added check for null pointer in DOSFS_GetDevice(). * [controls/tooltips.c][include/commctrl.h] Improved tooltips. * [controls/status.c][include/commctrl.h] Cleaned up code and added tooltip support. * [controls/toolbar.c][include/commctrl.h] Added tooltip support. * [documentation/common_controls] Updated. Thu Aug 6 00:05:22 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [include/ver.h] [misc/ver.c] Write VIF_BUFFTOOSMALL, not VIF_BUFTOSMALL. * [debugger/hash.c] [debugger/stabs.c] Make debug output more friendly for posting. * [files/file.c] Partial implementation of OF_SHARE_EXCLUSIVE. Needed for Quicklogic/QuickChip (InstallShield). * [files/profile.c] When a cached-only entry is found, return it. * [graphics/x11drv/xfont.c] Accept a space as delimiter for a fontname and inhibit overrun (Make xplasim.ex from the Phillips Coolrunner CPLD suite proceed). * [miscemu/main.c] Delay setting IF1632_CallLargeStack after loading the executables. Stops fpgaexp.exe from the Viewlogic FPGA suite from crashing when showing the Blinker error Message Box. * [misc/network.c] Make WNetGetConnection16 recognise a CDROM as a local drive. * [multimedia/mmsystem.c] Preliminary check for MCI_ALL_DEVICE_ID in MCI_Close by a FIXME. Tue Aug 4 21:15:23 1998 James Juran <jrj120@psu.edu> * [ole/ole2nls.c] Fixed bug in CompareString32A. strcmp() doesn't necessarily return -1, 0, or 1, which the previous code depended on. Changed name of is_punctuation to OLE2NLS_isPunctuation. Made NORM_IGNOREWIDTH not print a FIXME message in LCMapString32A. Other debugging messages, documentation, and code cleanups. * [objects/font.c] [relay32/gdi32.spec] [include/winerror.h] Added stub for GetFontData32, and added GDI_ERROR constant to winerror.h. Tue Aug 4 07:44:43 1998 Ove Kaaven <ovek@arcticnet.no> * [multimedia/mmio.c] Implemented mmioSetBuffer, mmioAdvance, mmioAscend, and mmioCreateChunk to the best of my knowledge. But watch out, there's bound to be bugs in there... * [include/mmsystem.h] [multimedia/mmsystem.c] Hacked in support for 32-bit multimedia function callbacks. * [AUTHORS] [misc/shell.c] Selfishly credited my authorship. Hopefully I'm excused. * [include/dosexe.h] [include/module.h] [loader/dos/*] [loader/module.c] [loader/task.c] [Makefile.in] [configure.in] [Makefile.in] Added DOS EXE (MZ) loader and virtual machine. Task structure integration thanks to Ulrich Weigand. * [files/dos_fs.c] Work around a null pointer dereference if ioctlGetDeviceInfo-ing a FILE_DupUnixHandle'd file (i.e. GetStdHandle'd). * [include/miscemu.h] [include/winnt.h] [loader/main.c] [memory/global.c] [msdos/dpmi.c] [msdos/dosmem.c] Added support for DOS memory images, and added DOSMEM_ResizeBlock() and DOSMEM_Available(). * [msdos/int21.c] Added support for the DOS virtual machine, tweaked handle assignment to avoid stdio clashes, forced INT21_FindNext to exit wildcardless searches after finding one entry, added AH=7, 8, 9, C, 48, 49, 4A, and 7160 CL=1 (Get Short Filename), and made the long filename calls only respond if running with with -winver win95. * [objects/cursoricon.c] DestroyCursor32 and DestroyIcon32 should now free the objects (hopefully) correctly. Sun Aug 2 21:42:09 1998 Huw D M Davies <daviesh@abacus.physics.ox.ac.uk> * [graphics/psdrv/*] [include/psdrv.h] Added PPD file parsing - at the moment it reads a file called default.ppd from the directory in which you start Wine. Page sizes other than A4 should now work (landscape may not). All fonts that are present on your printer (according to the PPD) should be available, providing you have the AFM files. Fonts should now be the correct size. Graphics is still basically lines only. See graphics/psdrv/README . * [misc/printdrv.c] Yet more Drv[Get/Set]PrinterData fixes. Fri Jul 31 21:33:22 1998 Per Lindstrm <pelinstr@algonet.se> * [relay32/crtdll.spec] [misc/crtdll.c] Added stub for freopen, _findfirst, _findnext, _fstat and _read. * [files/directory.c] Modified warning message. Wed Jul 29 11:25:28 1998 Luiz Otavio L. Zorzella <zorzella@nr.conexware.com> * [objects/font.c] Added stub for GetFontData. * [multimedia/msvideo.c] Created this file to hold the msvideo.dll calls (and maybe also msvfw32.dll). * [objects/cursoricon.c] Added search in Global Heap for cursor when trying to destroy it with DestroyCursor16. This test should be done in many (all?) other functions that use FreeResource. * [controls/treeview.c] [include/commctrl.h] Minor correction in name and addition of many placeholders for TVM messages in TREEVIEW_WindowProc. * [msdos/dpmi.c] Fixed a bug in DPMI_xrealloc where in a copy of a memory region "A" of size "a" to a region "B" of size "b", "b" bytes were being copied, instead of "a", as the new version does. This both increases speed, as well as avoids segfaults.
1998-08-09 14:47:43 +02:00
handle = HANDLE_Alloc( PROCESS_Current(), obj, access, inherit, -1 );
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
K32OBJ_DecCount( obj );
}
SYSTEM_UNLOCK();
return handle;
}
/***********************************************************************
* OpenSemaphore32W (KERNEL32.546)
*/
HANDLE32 WINAPI OpenSemaphore32W( DWORD access, BOOL32 inherit, LPCWSTR name )
{
LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name );
HANDLE32 ret = OpenSemaphore32A( access, inherit, nameA );
if (nameA) HeapFree( GetProcessHeap(), 0, nameA );
return ret;
}
/***********************************************************************
* ReleaseSemaphore (KERNEL32.583)
*/
BOOL32 WINAPI ReleaseSemaphore( HANDLE32 handle, LONG count, LONG *previous )
{
SEMAPHORE *sem;
SYSTEM_LOCK();
Release 980413 Sun Apr 12 12:22:23 1997 Andreas Mohr <100.30936@germany.net> * [files/drive.c] Fixed "no free space" problem with partition sizes between 1 and 2 GB (cluster_sectors may not exceed 0x40). * [windows/msgbox.c] [if1632/user.spec] [include/windows.h] Implemented MessageBoxIndirect16, corrected MSGBOXPARAMS16. * [loader/task.c] DOS environment strings may never exceed 127 chars -> truncate Unix environment strings if necessary. Sun Apr 12 02:51:44 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu> * [files/*.c] All fprintf statements were converted to appropriate debug messages. * [tools/find_debug_channels] Updated comments at the beginning of the file. Sat Apr 11 15:27:21 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [loader/module.c] [loader/task.c] [scheduler/process.c] Moved some code around to prepare the ground for CreateProcess(). * [memory/environ.c] [loader/task.c] Moved Win32 environment strings functions to environ.c. Unified Win16 and Win32 environment management. * [scheduler/handle.c] [scheduler/k32obj.c] [scheduler/*.c] Implemented handle inheritance and DuplicateHandle(). * [scheduler/thread.c] Create a 16-bit stack for all threads. * [windows/dialog.c] Implemented DIALOGEX resource format. Fri Apr 10 20:21:51 1998 Marcus Meissner <marcus@mud.de> * [configure.in][include/acconfig.h][*/*][multimedia/*] Cleaned up the OSS detection stuff, added some more checks for headerfiles/functions. Removed a lot of OS specific #ifdefs. Lots of dependend multimedia cleanups. * [loader/pe_image.c] Enhanced comment, added missing reference count increase. * [ole/compobj.c] Replaced broken StringFromGUID2 by working one. * [misc/winsock.c] SO_LINGER uses unsigned 16 bit in Win16 and Win32, but unsigned int (32bit) for UNIX. * [memory/global.c] Allow realloc for lockcount 1 too. Fri Apr 10 15:27:34 1998 Morten Welinder <terra@diku.dk> * [graphics/x11drv/text.c] Handle control characters in trace. Ignore terminating newline. * [multimedia/init.c] (MULTIMEDIA_Init): Correct allocations. * [tools/examine-relay] Tidy up. * [windows/syscolor.c] Change highlight colour from lightblue to lightgray. This looks correct for menus. Fri Apr 10 01:49:58 1998 Douglas Ridgway <ridgway@winehq.com> * [configure.in] [Make.rules.in] Add check for c2man before using it. Fri Apr 10 02:59:21 1998 Douglas Ridgway <ridgway@winehq.com> * [DEVELOPERS-HINTS] Simple description of adding API calls. * [include/wintypes.h] [include/windows.h] Get rid of Winelib16, avoid declaring some illegal functions in Winelib, add prototypes for some enhanced metafile functions, fix GetTextExtentPoint32 declarations. * [relay32/gdi32.spec] [objects/enhmetafile.c] Cosmetic and functional improvements. * [include/wincon.h] [programs/view/*] Fixes, improved compatibility with native compilers. Thu Apr 9 15:48:49 1998 Ulrich Weigand <weigand@informatik.uni-erlangen.de> * [win32/kernel32.c] Implemented FT_Thunk / FT_Prolog / FT_Exit / FT_PrologPrime. Fixed Common32ThkLS thunk function. * [tools/build.c] [relay32/relay386.c] [if1632/relay.c] Changed relay code to allow register functions to modify stack layout. * [memory/selector.c] Implemented AllocMappedBuffer / FreeMappedBuffer. * [relay32/kernel32.spec] [if1632/kernel.spec] [win32/ordinals.c] Added names for undocumented functions. * [loader/module.c] Bugfix: LoadLibrary16 should *not* silently load 32-bit DLL. Thu Apr 9 03:54:58 1998 Jim Peterson <jspeter@birch.ee.vt.edu> * [windows/keyboard.c] Fix an erroneous test in TranslateAccelerator{16,32} for the end of the accelerator table. Thu Apr 8 20:36:28 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [misc/crtdll.c] Implement getenv. * [misc/commdlg.c] Make Get[Save/Open]FileName work in most situations. * [misc/lstr.c] Use wvsprintf32A instead of vsprintf in FormatMessage32X * [misc/version] Make NT3.50 a recognised version * [graphics/x11drv/graphics.c] Change the algorithme to draw arcs * [loader/resource.c] Return an empty buffer in LoadString32A if no resource found. * [win32/code_page.c] Try harder to get the right size in MultiByteToWideChar. * [win32/process.c] Call WinExec32 for CreateProcess32A. * [windows/user.c] Install default Int0 Handler in InitApp(). Thu Apr 8 19:29:48 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [misc/imagelist.c] Preliminary fix for drawing selected images. Various improvements. * [controls/progress.c][include/progress.c][include/commctrl.h] Added progress bar messages and styles for IE4.01 (dll version 4.72) compatibility. Fixed led size problem. * [controls/updown.c][include/commctrl.h] Added UDM_GETRANGE32 and UDM_SETRANGE32. * [objects/oembitmaps.c][include/windows.h][include/bitmaps/*] Added Win95 icons and fixed Win95 cursor and restore button bug. Now they should be visible. Sorry!!! * [relay32/comctl32.spec] Added most missing function names. Tue Apr 6 18:48:36 1998 Matthew Becker <mbecker@glasscity.net> * [objects/font.c] [if1632/gdi.spec] GetOutlineTextMetrics: stub * [objects/text.c] GetTextCharset should just call GetTextCharsetInfo. * [misc/mpr.c] [relay32/mpr.spec] WNetCachePassword: stub * [scheduler/thread.c] [relay32/user32.spec] AttachThreadInput: stub Updated documentation. * [objects/palette.c] Updated documentation. Tue Mar 31 17:06:30 1998 James Juran <jrj120@psu.edu> * [*/*.c] Finished fixing USER32 ordinal numbers in function documentation. Mon Mar 30 20:27:38 1998 Morten Welinder <terra@diku.dk> * [misc/debugstr.c] [include/debugstr.h] Moved _dumpstr from relay32/relay386.c. Improved control character handling. * [msdos/int21.c] Implement 215E00 -- get machine name. * [windows/winpos.c] SetWindowPos32: Make an extra sync when mapping managed windows. This makes sure the reconfigure event has been handled. See Mshearts' what's-your-name window. Mon Mar 30 01:13:50 1998 Alexander V. Lukyanov <lav@long.yar.ru> * [Makefile.in] Install includes from TOPSRCDIR.
1998-04-13 14:21:30 +02:00
if (!(sem = (SEMAPHORE *)HANDLE_GetObjPtr( PROCESS_Current(), handle,
K32OBJ_SEMAPHORE,
Release 980809 Sat Aug 8 19:11:46 1998 Marcus Meissner <marcus@jet.franken.de> * [*/*] Added some missing WINAPI and some missing prototypes for functions. * [controls/static.c] Got rid of the MODULE32_LookupHMODULE error showing up for every message box. * [windows/winproc.c] WM_NOTIFY 16->32 mapping (AOL Instant Messenger or however it is called). * [misc/winsock.c] hostent/servent/protoent should not use the same static buffers. (has broken nt3.15 finger.exe which does hp=gethostbyname(), then getservbyname("finger","tcp") and the references hp->h_addr_list[0]). Sat Aug 8 13:21:24 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [include/server.h] [tools/make_requests] [server/request.c] [server/trace.c] Automated part of the client/server request code generation. Added tracing of client/server communication. * [scheduler/*.c] [server/process.c] Added support for server-side handles. * [scheduler/thread.c] Added DLL_THREAD_ATTACH/DETACH notifications. * [configure.in] Added check for -lsocket. * [windows/winproc.c] Return the thunk address in WINPROC_GetProc if the function types don't match. Sat Aug 8 02:44:04 1998 Douglas Ridgway <ridgway@winehq.com> * [windows/winproc.c][windows/win.c][windows/message.c] Documentation for CallWindowProc, SetWindowLong, DispatchMessage, WaitMessage, GetMessage, and PeekMessage. Sat Aug 8 01:00:00 1998 Juergen Schmied <juergen.schmied@metronet.de> * [controls/commctrl.c][controls/widgets.c][include/builtin32.h] [include/commctrl.h][relay32/builtin32.c][relay32/comctl32.spec] [tools/build.c] [relay32/shell32.spec] Added the functionality of the LibMain function. The common controls are properly initialized now. * [controls/treeview.c][memory/atom.c][scheduler/thread.c][windows/class.c] [windows/msgbox.c][windows/win.c] Put TRACE in, put SetLastError() in. * [include/interfaces.h] Added IClassFactory::LockServer. * [include/ole2.h] Added struct for LPOLEMENUGROUPWIDTHS32, HOLEMENU32. * [include/shell.h][include/shlobj.h][misc/shell.c][ole/folders.c] Reorganized and many structs and classes (IShellBrowser,IShellView) added. shell32.dll should work in many cases now. Started SHGetFileInfoA implementeation, rewrote SHGetPathFromIDList32A. New Shell32LibMain started ShellIconCache Implementation. * [misc/shellord.c] Rewrote ILCombine, ILGetSize New stubs SHFind_InitMenuPopup, FileMenu_Create, ShellExecuteEx, SHSetInstanceExplorer, SHGetInstanceExplorer, SHFreeUnusedLibraries. * [include/winerror.h] Class and window related error codes added. * [memory/heap.c] Changed lstrlen32A to strlen to get rid of milions of TRACE lines. * [misc/ddeml.c] First lines for DdeCreateStringHandle32A / DdeFreeStringHandle32. * [misc/network.c][relay32/mpr.spec] Fixed some bugs, changed ordinals. * [windows/class.c] Workarounds for incorrect hInstance handling. Fixes parts of MSWord95/Excel95 and Money95. Thu Aug 6 21:05:35 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [windows/nonclient.c][misc/tweak.c][include/tweak.h] [documentation/win95look] Removed some tweak variables. They are no longer needed. * [files/dos_fs.c] Added check for null pointer in DOSFS_GetDevice(). * [controls/tooltips.c][include/commctrl.h] Improved tooltips. * [controls/status.c][include/commctrl.h] Cleaned up code and added tooltip support. * [controls/toolbar.c][include/commctrl.h] Added tooltip support. * [documentation/common_controls] Updated. Thu Aug 6 00:05:22 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [include/ver.h] [misc/ver.c] Write VIF_BUFFTOOSMALL, not VIF_BUFTOSMALL. * [debugger/hash.c] [debugger/stabs.c] Make debug output more friendly for posting. * [files/file.c] Partial implementation of OF_SHARE_EXCLUSIVE. Needed for Quicklogic/QuickChip (InstallShield). * [files/profile.c] When a cached-only entry is found, return it. * [graphics/x11drv/xfont.c] Accept a space as delimiter for a fontname and inhibit overrun (Make xplasim.ex from the Phillips Coolrunner CPLD suite proceed). * [miscemu/main.c] Delay setting IF1632_CallLargeStack after loading the executables. Stops fpgaexp.exe from the Viewlogic FPGA suite from crashing when showing the Blinker error Message Box. * [misc/network.c] Make WNetGetConnection16 recognise a CDROM as a local drive. * [multimedia/mmsystem.c] Preliminary check for MCI_ALL_DEVICE_ID in MCI_Close by a FIXME. Tue Aug 4 21:15:23 1998 James Juran <jrj120@psu.edu> * [ole/ole2nls.c] Fixed bug in CompareString32A. strcmp() doesn't necessarily return -1, 0, or 1, which the previous code depended on. Changed name of is_punctuation to OLE2NLS_isPunctuation. Made NORM_IGNOREWIDTH not print a FIXME message in LCMapString32A. Other debugging messages, documentation, and code cleanups. * [objects/font.c] [relay32/gdi32.spec] [include/winerror.h] Added stub for GetFontData32, and added GDI_ERROR constant to winerror.h. Tue Aug 4 07:44:43 1998 Ove Kaaven <ovek@arcticnet.no> * [multimedia/mmio.c] Implemented mmioSetBuffer, mmioAdvance, mmioAscend, and mmioCreateChunk to the best of my knowledge. But watch out, there's bound to be bugs in there... * [include/mmsystem.h] [multimedia/mmsystem.c] Hacked in support for 32-bit multimedia function callbacks. * [AUTHORS] [misc/shell.c] Selfishly credited my authorship. Hopefully I'm excused. * [include/dosexe.h] [include/module.h] [loader/dos/*] [loader/module.c] [loader/task.c] [Makefile.in] [configure.in] [Makefile.in] Added DOS EXE (MZ) loader and virtual machine. Task structure integration thanks to Ulrich Weigand. * [files/dos_fs.c] Work around a null pointer dereference if ioctlGetDeviceInfo-ing a FILE_DupUnixHandle'd file (i.e. GetStdHandle'd). * [include/miscemu.h] [include/winnt.h] [loader/main.c] [memory/global.c] [msdos/dpmi.c] [msdos/dosmem.c] Added support for DOS memory images, and added DOSMEM_ResizeBlock() and DOSMEM_Available(). * [msdos/int21.c] Added support for the DOS virtual machine, tweaked handle assignment to avoid stdio clashes, forced INT21_FindNext to exit wildcardless searches after finding one entry, added AH=7, 8, 9, C, 48, 49, 4A, and 7160 CL=1 (Get Short Filename), and made the long filename calls only respond if running with with -winver win95. * [objects/cursoricon.c] DestroyCursor32 and DestroyIcon32 should now free the objects (hopefully) correctly. Sun Aug 2 21:42:09 1998 Huw D M Davies <daviesh@abacus.physics.ox.ac.uk> * [graphics/psdrv/*] [include/psdrv.h] Added PPD file parsing - at the moment it reads a file called default.ppd from the directory in which you start Wine. Page sizes other than A4 should now work (landscape may not). All fonts that are present on your printer (according to the PPD) should be available, providing you have the AFM files. Fonts should now be the correct size. Graphics is still basically lines only. See graphics/psdrv/README . * [misc/printdrv.c] Yet more Drv[Get/Set]PrinterData fixes. Fri Jul 31 21:33:22 1998 Per Lindstrm <pelinstr@algonet.se> * [relay32/crtdll.spec] [misc/crtdll.c] Added stub for freopen, _findfirst, _findnext, _fstat and _read. * [files/directory.c] Modified warning message. Wed Jul 29 11:25:28 1998 Luiz Otavio L. Zorzella <zorzella@nr.conexware.com> * [objects/font.c] Added stub for GetFontData. * [multimedia/msvideo.c] Created this file to hold the msvideo.dll calls (and maybe also msvfw32.dll). * [objects/cursoricon.c] Added search in Global Heap for cursor when trying to destroy it with DestroyCursor16. This test should be done in many (all?) other functions that use FreeResource. * [controls/treeview.c] [include/commctrl.h] Minor correction in name and addition of many placeholders for TVM messages in TREEVIEW_WindowProc. * [msdos/dpmi.c] Fixed a bug in DPMI_xrealloc where in a copy of a memory region "A" of size "a" to a region "B" of size "b", "b" bytes were being copied, instead of "a", as the new version does. This both increases speed, as well as avoids segfaults.
1998-08-09 14:47:43 +02:00
SEMAPHORE_MODIFY_STATE, NULL )))
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
{
SYSTEM_UNLOCK();
return FALSE;
}
if (previous) *previous = sem->count;
if (sem->count + count > sem->max)
{
SYSTEM_UNLOCK();
SetLastError( ERROR_TOO_MANY_POSTS );
return FALSE;
}
if (sem->count > 0)
{
/* There cannot be any thread waiting if the count is > 0 */
assert( sem->wait_queue == NULL );
sem->count += count;
}
else
{
sem->count = count;
SYNC_WakeUp( &sem->wait_queue, count );
}
K32OBJ_DecCount( &sem->header );
SYSTEM_UNLOCK();
return TRUE;
}
/***********************************************************************
* SEMAPHORE_Signaled
*/
static BOOL32 SEMAPHORE_Signaled( K32OBJ *obj, DWORD thread_id )
{
SEMAPHORE *sem = (SEMAPHORE *)obj;
assert( obj->type == K32OBJ_SEMAPHORE );
return (sem->count > 0);
}
/***********************************************************************
* SEMAPHORE_Satisfied
*
* Wait on this object has been satisfied.
*/
Release 980118 Sun Jan 18 17:05:58 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [include/stackframe.h] [tools/build.c] Some cleanups in stack frame building. * [misc/port.c] Implemented clone() wrapper for libc5 users. * [scheduler/mutex.c] [scheduler/synchro.c] Implemented abandoned mutexes. * [scheduler/process.c] [scheduler/thread.c] We now create a process and a thread structure as soon as possible during initialization. * [scheduler/thread.c] [scheduler/sysdeps.c] Moved system-specific thread handling to sysdeps.c. Fri Jan 16 10:45:15 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [graphics/ddraw.c][include/ddraw.h] Surface handling enhanced. Some stuff already works ;) * [multimedia/dsound.c][include/dsound.h] Implemented using the Open Sound System. Slowly starts to work (sounds terrible for some programs). * [configure.in][multimedia/audio.c][include/config.h.in] Added check for OpenSoundSystem, fixed -lXxf86dga check. Replaced OS #ifdefs by #ifdef HAVE_OSS in mm/audio.c. * [if1632/relay.c][relay32/relay386.c] Do not print control characters for 'str' or 'wstr' args. * [misc/registry.c] "" seems to equals NULL in keynames. Replace where needed. Seems to help the win95 regedit.exe... * [win32/newfns.c] Implemented QueryPerformance* using gettimeofday(2) (should be done using the pentium timers probably). * [tools/ipcl] Removed useless open_pipe construct. Sun Jan 11 17:10:02 1998 Huw D M Davies <h.davies1@physics.oxford.ac.uk> * [objects/region.c] [include/region.h] [graphics/x11drv/clipping.c] Regions are now internal to Wine. The basis of this code is taken from the X11 distribution. GetRegionData() is implemented as is ExtCreateRegion() (without Xforms). CreatePolyPolygonRgn() should behave correctly now. * [objects/metafile.c] [graphics/metafiledrv/graphics.c] [graphics/metafiledrv/init.c] [include/metafile.h] [include/metafiledrv.h] Playback of META_CREATEREGION should now work. Implemented recording of META_CREATEREGION and META_PAINTREGION. * [graphics/x11drv/graphics.c] FillRgn() (and therefore its friends) respect logical co-ords. Wed Jan 7 01:21:45 1998 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] [include/acconfig.h] [tools/build.c] Now checking whether to use .string or .ascii. * [configure.in] [include/acconfig.h] [scheduler/critsection.c] Defining union semun if this is not available from header files. * [misc/lstr.c] Moved wine's own header files below <wctype.h> to avoid parse error on Solaris. Sun Jan 4 15:38:07 1998 Andrew Taylor <ataylor@cadvision.com> * [multimedia/mmsystem.c] [multimedia/mmio.c] Implemented mmioSendMessage and rearranged the mmio subsystem in terms of this function. Wed Dec 24 00:51:29 1997 Charles Duffy <cduffy@bigfoot.com> * [windows/clipboard.c] [relay32/user32.spec] GetPriorityClipboardFormat32 now has something other than just a stub. I have no idea if it works (can't test until SetClipboardData is finished) but HEdit likes things a lot more this way.
1998-01-18 19:01:49 +01:00
static BOOL32 SEMAPHORE_Satisfied( K32OBJ *obj, DWORD thread_id )
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
{
SEMAPHORE *sem = (SEMAPHORE *)obj;
assert( obj->type == K32OBJ_SEMAPHORE );
assert( sem->count > 0 );
sem->count--;
Release 980118 Sun Jan 18 17:05:58 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [include/stackframe.h] [tools/build.c] Some cleanups in stack frame building. * [misc/port.c] Implemented clone() wrapper for libc5 users. * [scheduler/mutex.c] [scheduler/synchro.c] Implemented abandoned mutexes. * [scheduler/process.c] [scheduler/thread.c] We now create a process and a thread structure as soon as possible during initialization. * [scheduler/thread.c] [scheduler/sysdeps.c] Moved system-specific thread handling to sysdeps.c. Fri Jan 16 10:45:15 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [graphics/ddraw.c][include/ddraw.h] Surface handling enhanced. Some stuff already works ;) * [multimedia/dsound.c][include/dsound.h] Implemented using the Open Sound System. Slowly starts to work (sounds terrible for some programs). * [configure.in][multimedia/audio.c][include/config.h.in] Added check for OpenSoundSystem, fixed -lXxf86dga check. Replaced OS #ifdefs by #ifdef HAVE_OSS in mm/audio.c. * [if1632/relay.c][relay32/relay386.c] Do not print control characters for 'str' or 'wstr' args. * [misc/registry.c] "" seems to equals NULL in keynames. Replace where needed. Seems to help the win95 regedit.exe... * [win32/newfns.c] Implemented QueryPerformance* using gettimeofday(2) (should be done using the pentium timers probably). * [tools/ipcl] Removed useless open_pipe construct. Sun Jan 11 17:10:02 1998 Huw D M Davies <h.davies1@physics.oxford.ac.uk> * [objects/region.c] [include/region.h] [graphics/x11drv/clipping.c] Regions are now internal to Wine. The basis of this code is taken from the X11 distribution. GetRegionData() is implemented as is ExtCreateRegion() (without Xforms). CreatePolyPolygonRgn() should behave correctly now. * [objects/metafile.c] [graphics/metafiledrv/graphics.c] [graphics/metafiledrv/init.c] [include/metafile.h] [include/metafiledrv.h] Playback of META_CREATEREGION should now work. Implemented recording of META_CREATEREGION and META_PAINTREGION. * [graphics/x11drv/graphics.c] FillRgn() (and therefore its friends) respect logical co-ords. Wed Jan 7 01:21:45 1998 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] [include/acconfig.h] [tools/build.c] Now checking whether to use .string or .ascii. * [configure.in] [include/acconfig.h] [scheduler/critsection.c] Defining union semun if this is not available from header files. * [misc/lstr.c] Moved wine's own header files below <wctype.h> to avoid parse error on Solaris. Sun Jan 4 15:38:07 1998 Andrew Taylor <ataylor@cadvision.com> * [multimedia/mmsystem.c] [multimedia/mmio.c] Implemented mmioSendMessage and rearranged the mmio subsystem in terms of this function. Wed Dec 24 00:51:29 1997 Charles Duffy <cduffy@bigfoot.com> * [windows/clipboard.c] [relay32/user32.spec] GetPriorityClipboardFormat32 now has something other than just a stub. I have no idea if it works (can't test until SetClipboardData is finished) but HEdit likes things a lot more this way.
1998-01-18 19:01:49 +01:00
return FALSE; /* Not abandoned */
Release 980104 Sat Jan 3 17:15:56 1998 Alexandre Julliard <julliard@lrc.epfl.ch> * [debugger/db_disasm.c] Added cpuid and cmpxchg instructions. * [if1632/builtin.c] [relay32/builtin32.c] Fixed broken -dll option with Win32 DLLs. * [include/heap.h] Added SYSTEM_LOCK/SYSTEM_UNLOCK macros. * [configure.in] [misc/lstr.c] Added check for wctype.h. Commented out --enable-ipc option (IPC code has been broken for a long time anyway). * [scheduler/critsection.c] [scheduler/event.c] [scheduler/mutex.c] [scheduler/semaphore.c] Implemented Win32 synchronization objects. * [scheduler/synchro.c] Implemented WaitForMultipleObjects and related functions. * [scheduler/thread.c] If possible, use clone() in CreateThread(). * [scheduler/thread.c] [scheduler/process.c] Made thread and process waitable objects. Thread and process id values are now different from the pointers they represent. * [win32/k32obj.c] Moved to scheduler directory. Added function table for waiting operations on objects. * [files/file.c] [memory/virtual.c] Added new K32OBJ function table. Sun Jan 1 16:48:23 1997 Andreas Mohr <100.30936@germany.net> * [files/file.c] Fixed my patch for GetTempFileName16() as needed. It was ...Name32A() that didn't work properly, not ...Name16(). * [graphics/x11drv/brush.c] Fixed a BadMatch error. * [msdos/int21.c] Fixed INT21_FindNextFCB() to get correct volume labels e.g. in "file open" dialog. * [multimedia/joystick.c] [relay32/winmm.spec] Stub JoyGetPosEx(). * [scheduler/process.c] [relay32/kernel32.spec] Implemented RegisterServiceProcess(). Wed Dec 31 11:14:43 1997 Lawson Whitney <lawson_whitney@juno.com> * [if1632/kernel.spec] [if1632/relay.c] Define CallProcEx32w - Thanks to Marcus Meissner for his excellent CallProc32W. * [loader/module.c] Take a shot at defining FreeLibrary32W. Sun Dec 28 12:44:04 1997 Kai Morich <kai.morich@rhein-neckar.netsurf.de> * [controls/menu.c] Menu modification from WM_INITMENUPOPUP message fixed. Menu items now can have different wID and hSubMenu (Win95 behavior). * [misc/cpu.c] Improved IsProcessorFeaturePresent. Sun Dec 28 03:21:08 1997 Ove Kaaven <ovek@main.arcticnet.no> * [include/winsock.h] [misc/winsock.c] Fixed WS_SOL_SOCKET for setsockopt(), and made select() return empty fd_sets if timeout. * [objects/palette.c] AnimatePalette() bailed out if entire palette is animated. Fixed. * [objects/dib.c] Added some code to SetDIBitsToDevice() and its helpers to fix some offseting problems. * [objects/cursoricon.c] Made CreateCursor32() convert the instance handle properly. Made DestroyCursor() return correct success status. Wed Dec 24 17:56:34 1997 Dimitrie O. Paun <dimi@cs.toronto.edu> * [windows/syscolor.c] Added definition of GetSysColorPen16/32. This function does not exist in the Win32 API but is a very close (and natural) relative to GetSysColorBrush function. Moreover, it is *very* much used within Wine since there are a lot of places where we need to draw lines with the standard colors. * [controls/button.c] [controls/combo.c] [controls/icontitle.c] [controls/menu.c] [controls/progress.c] [controls/scroll.c] [controls/updown.c] [graphics/painting.c] [misc/tweak.c] [windows/defwnd.c] [windows/graphics.c] [windows/nonclient.c] Replaced references to sysColorObjects with the appropriate call to GetSysColorBrush32/GetSysColorPen32. There is no need to expose the implementation of these functions, even within Wine. This makes the code easier to understand, debug, maintain. * [controls/uitools.c] Modified most of the functions in this file to use the now standard pens (i.e. GetSysColorPen32). These functions made *heavy* use of standard pens so I expect a lot less CreatePen/DeleteObject calls can do only good...:) Plus some minor modifications (*no* functional changes though). * [controls/updown.c] Used the new DrawFrameControl32 function to paint the control. I also deleted UDDOWN_DrawArrow since it was no longer required. Tue Dec 23 00:03:33 1997 Steinar Hamre <steinarh@stud.fim.ntnu.no> * [configure.in] Added check for -lw. * [include/wintypes.h] [tools/build.c] Changes to make the assembly understandable for even sun as. ".ascii" -> ".string", "call %foo" -> "call *%foo", "pushw/popw %[cdes]s" written out to ".byte 0x66\npushl/popl %[cdes]s". * [memory/ldt.c] #ifdef added so <sys/seg.h> will not be included on Solaris. Mon Dec 22 18:55:19 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [configure.in] Added XF86DGA check. * [multimedia/dsound.c][relay32/dsound.spec][include/dsound.h] Started DirectSound. Only stubs for now. * [graphics/ddraw.c][include/ddraw.h][relay32/ddraw.spec] Started to implement DirectDraw. Mostly stubs, some testcases work. Requires the XF86DGA extension to XFree86. (check demo/blizdemo.exe from the Diablo CD-ROM). * [files/drive.c] Return correct "CDFS" fsname so Diablo is a bit happier. Sun Dec 21 21:45:48 1997 Kevin Cozens <kcozens@interlog.com> * [misc/registry.c] Fixed bugs in the routines which read the Windows '95 registry files. Added extra information regarding the format of the Windows '95 registry files.
1998-01-04 18:49:09 +01:00
}
/***********************************************************************
* SEMAPHORE_AddWait
*
* Add current thread to object wait queue.
*/
static void SEMAPHORE_AddWait( K32OBJ *obj, DWORD thread_id )
{
SEMAPHORE *sem = (SEMAPHORE *)obj;
assert( obj->type == K32OBJ_SEMAPHORE );
THREAD_AddQueue( &sem->wait_queue, THREAD_ID_TO_THDB(thread_id) );
}
/***********************************************************************
* SEMAPHORE_RemoveWait
*
* Remove thread from object wait queue.
*/
static void SEMAPHORE_RemoveWait( K32OBJ *obj, DWORD thread_id )
{
SEMAPHORE *sem = (SEMAPHORE *)obj;
assert( obj->type == K32OBJ_SEMAPHORE );
THREAD_RemoveQueue( &sem->wait_queue, THREAD_ID_TO_THDB(thread_id) );
}
/***********************************************************************
* SEMAPHORE_Destroy
*/
static void SEMAPHORE_Destroy( K32OBJ *obj )
{
SEMAPHORE *sem = (SEMAPHORE *)obj;
assert( obj->type == K32OBJ_SEMAPHORE );
/* There cannot be any thread on the list since the ref count is 0 */
assert( sem->wait_queue == NULL );
obj->type = K32OBJ_UNKNOWN;
HeapFree( SystemHeap, 0, sem );
}