1997-01-01 18:29:55 +01:00
|
|
|
/*
|
|
|
|
* Thread definitions
|
|
|
|
*
|
|
|
|
* Copyright 1996 Alexandre Julliard
|
2002-03-10 00:29:33 +01:00
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
1997-01-01 18:29:55 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_THREAD_H
|
|
|
|
#define __WINE_THREAD_H
|
|
|
|
|
2003-09-06 01:08:26 +02:00
|
|
|
#include <stdarg.h>
|
|
|
|
#include <windef.h>
|
|
|
|
#include <winbase.h>
|
|
|
|
#include <winreg.h>
|
2003-08-28 21:57:35 +02:00
|
|
|
#define WINE_NO_TEB
|
2003-08-28 23:43:34 +02:00
|
|
|
#include <winternl.h>
|
|
|
|
#include <wine/windef16.h>
|
1997-01-01 18:29:55 +01:00
|
|
|
|
2000-03-08 19:26:56 +01:00
|
|
|
struct _SECURITY_ATTRIBUTES;
|
|
|
|
struct tagSYSLEVEL;
|
2000-08-29 05:54:30 +02:00
|
|
|
struct server_buffer_info;
|
2002-12-17 22:06:25 +01:00
|
|
|
struct fiber_data;
|
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
|
|
|
|
2003-08-21 23:34:33 +02:00
|
|
|
struct debug_info
|
|
|
|
{
|
|
|
|
char *str_pos; /* current position in strings buffer */
|
|
|
|
char *out_pos; /* current position in output buffer */
|
|
|
|
char strings[1024]; /* buffer for temporary strings */
|
|
|
|
char output[1024]; /* current output line */
|
|
|
|
};
|
|
|
|
|
2000-01-15 23:22:27 +01:00
|
|
|
/* Thread exception block
|
|
|
|
|
|
|
|
flags in the comment:
|
|
|
|
1-- win95 field
|
|
|
|
d-- win95 debug version
|
|
|
|
-2- nt field
|
|
|
|
--3 wine special
|
|
|
|
--n wine unused
|
|
|
|
!-- or -!- likely or observed collision
|
|
|
|
more problems (collected from mailing list):
|
|
|
|
psapi.dll 0x10/0x30 (expects nt fields)
|
|
|
|
ie4 0x40
|
|
|
|
PESHiELD 0x23/0x30 (win95)
|
|
|
|
*/
|
2003-08-28 21:57:35 +02:00
|
|
|
#ifndef WINE_TEB_DEFINED
|
|
|
|
#define WINE_TEB_DEFINED
|
1997-01-01 18:29:55 +01:00
|
|
|
typedef struct _TEB
|
|
|
|
{
|
2003-08-28 05:44:41 +02:00
|
|
|
NT_TIB Tib; /* 12- 00 Thread information block */
|
2000-01-15 23:22:27 +01:00
|
|
|
WORD tibflags; /* 1!n 1c Flags (NT: EnvironmentPointer) */
|
|
|
|
WORD mutex_count; /* 1-n 1e Win16 mutex count */
|
2003-08-28 01:14:29 +02:00
|
|
|
CLIENT_ID ClientId; /* -2- 20 Process and thread id (win95: debug context) */
|
2000-01-15 23:22:27 +01:00
|
|
|
HQUEUE16 queue; /* 1!- 28 Message queue (NT: DWORD ActiveRpcHandle)*/
|
|
|
|
WORD pad1; /* --n 2a */
|
2003-08-28 01:14:29 +02:00
|
|
|
PVOID ThreadLocalStoragePointer; /* 1-- 2c Pointer to TLS array */
|
2003-05-22 05:44:01 +02:00
|
|
|
PEB *Peb; /* 12- 30 owning process PEB */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD flags; /* 1-n 34 */
|
|
|
|
DWORD exit_code; /* 1-- 38 Termination status */
|
|
|
|
WORD teb_sel; /* 1-- 3c Selector to TEB */
|
|
|
|
WORD emu_sel; /* 1-n 3e 80387 emulator selector */
|
|
|
|
DWORD unknown1; /* --n 40 */
|
|
|
|
DWORD unknown2; /* --n 44 */
|
2003-08-21 23:34:33 +02:00
|
|
|
DWORD unknown3; /* --n 48 */
|
2000-01-15 23:22:27 +01:00
|
|
|
int thread_errno; /* --3 4c Per-thread errno (was: ring0_thread) */
|
|
|
|
int thread_h_errno; /* --3 50 Per-thread h_errno (was: ptr to tdbx structure) */
|
2002-12-17 22:06:25 +01:00
|
|
|
void *signal_stack; /* --3 54 Signal stack (was: stack_base) */
|
|
|
|
void *exit_stack; /* 1-n 58 Exit stack */
|
2000-01-15 23:22:27 +01:00
|
|
|
void *emu_data; /* --n 5c Related to 80387 emulation */
|
|
|
|
DWORD last_error; /* 1-- 60 Last error code */
|
2000-01-30 22:16:45 +01:00
|
|
|
HANDLE debug_cb; /* 1-n 64 Debugger context block */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD debug_thread; /* 1-n 68 Thread debugging this one (?) */
|
|
|
|
void *pcontext; /* 1-n 6c Thread register context */
|
|
|
|
DWORD cur_stack; /* --3 70 Current stack (was: unknown) */
|
|
|
|
DWORD ThunkConnect; /* 1-n 74 */
|
|
|
|
DWORD NegStackBase; /* 1-n 78 */
|
|
|
|
WORD current_ss; /* 1-n 7c Another 16-bit stack selector */
|
|
|
|
WORD pad2; /* --n 7e */
|
|
|
|
void *ss_table; /* --n 80 Pointer to info about 16-bit stack */
|
2003-08-28 05:44:41 +02:00
|
|
|
WORD stack_sel; /* --3 84 16-bit stack selector */
|
|
|
|
HTASK16 htask16; /* --3 86 Win16 task handle */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD pad4[15]; /* --n 88 */
|
2000-06-12 23:56:02 +02:00
|
|
|
ULONG CurrentLocale; /* -2- C4 */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD pad5[48]; /* --n C8 */
|
|
|
|
DWORD delta_priority; /* 1-n 188 Priority delta */
|
|
|
|
DWORD unknown4[7]; /* d-n 18c Unknown */
|
|
|
|
void *create_data; /* d-n 1a8 Pointer to creation structure */
|
|
|
|
DWORD suspend_count; /* d-n 1ac SuspendThread() counter */
|
|
|
|
void *entry_point; /* --3 1b0 Thread entry point (was: unknown) */
|
|
|
|
void *entry_arg; /* --3 1b4 Entry point arg (was: unknown) */
|
|
|
|
DWORD unknown5[4]; /* --n 1b8 Unknown */
|
|
|
|
DWORD sys_count[4]; /* --3 1c8 Syslevel mutex entry counters */
|
2000-03-08 19:26:56 +01:00
|
|
|
struct tagSYSLEVEL *sys_mutex[4]; /* --3 1d8 Syslevel mutex pointers */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD unknown6[5]; /* --n 1e8 Unknown */
|
|
|
|
|
|
|
|
/* The following are Wine-specific fields (NT: GDI stuff) */
|
2002-08-16 01:18:47 +02:00
|
|
|
UINT code_page; /* --3 1fc Thread code page */
|
2003-02-27 22:11:13 +01:00
|
|
|
DWORD unused[2]; /* --3 200 Was server buffer */
|
|
|
|
DWORD gs_sel; /* --3 208 %gs selector for this thread */
|
2001-03-01 23:13:49 +01:00
|
|
|
int request_fd; /* --3 20c fd for sending server requests */
|
|
|
|
int reply_fd; /* --3 210 fd for receiving server replies */
|
2001-03-08 02:16:41 +01:00
|
|
|
int wait_fd[2]; /* --3 214 fd for sleeping server requests */
|
2003-08-21 23:34:33 +02:00
|
|
|
struct debug_info *debug_info; /* --3 21c Info for debugstr functions */
|
2001-03-08 02:16:41 +01:00
|
|
|
void *pthread_data; /* --3 220 Data for pthread emulation */
|
2001-03-22 21:09:34 +01:00
|
|
|
struct async_private *pending_list; /* --3 224 list of pending async operations */
|
2001-05-16 21:52:29 +02:00
|
|
|
void *driver_data; /* --3 228 Graphics driver private data */
|
2003-06-16 03:18:26 +02:00
|
|
|
DWORD dpmi_vif; /* --3 22c Protected mode virtual interrupt flag */
|
2001-06-21 02:39:34 +02:00
|
|
|
DWORD vm86_pending; /* --3 230 Data for vm86 mode */
|
|
|
|
void *vm86_ptr; /* --3 234 Data for vm86 mode */
|
2000-01-15 23:22:27 +01:00
|
|
|
/* here is plenty space for wine specific fields (don't forget to change pad6!!) */
|
|
|
|
|
|
|
|
/* the following are nt specific fields */
|
2002-01-04 22:57:04 +01:00
|
|
|
DWORD pad6[624]; /* --n 238 */
|
2000-01-15 23:22:27 +01:00
|
|
|
UNICODE_STRING StaticUnicodeString; /* -2- bf8 used by advapi32 */
|
|
|
|
USHORT StaticUnicodeBuffer[261]; /* -2- c00 used by advapi32 */
|
2003-08-28 01:14:29 +02:00
|
|
|
PVOID DeallocationStack; /* -2- e0c Base of the stack */
|
|
|
|
LPVOID TlsSlots[64]; /* -2- e10 Thread local storage */
|
2000-01-15 23:22:27 +01:00
|
|
|
DWORD pad8[3]; /* --n f10 */
|
|
|
|
PVOID ReservedForNtRpc; /* -2- f1c used by rpcrt4 */
|
|
|
|
DWORD pad9[24]; /* --n f20 */
|
2003-08-28 01:14:29 +02:00
|
|
|
PVOID ReservedForOle; /* -2- f80 used by ole32 (IErrorInfo*) */
|
1997-01-01 18:29:55 +01:00
|
|
|
} TEB;
|
2003-08-28 21:57:35 +02:00
|
|
|
#endif /* WINE_TEB_DEFINED */
|
1997-01-01 18:29:55 +01:00
|
|
|
|
1998-11-24 21:47:17 +01:00
|
|
|
/* Thread exception flags */
|
|
|
|
#define TEBF_WIN32 0x0001
|
|
|
|
#define TEBF_TRAP 0x0002
|
|
|
|
|
1999-05-23 22:02:04 +02:00
|
|
|
/* The per-thread signal stack size */
|
2002-09-13 00:30:28 +02:00
|
|
|
#define SIGNAL_STACK_SIZE 0x100000 /* 1Mb FIXME: should be much smaller than that */
|
1999-05-23 22:02:04 +02:00
|
|
|
|
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
|
|
|
|
|
|
|
/* scheduler/thread.c */
|
2000-05-01 23:21:31 +02:00
|
|
|
extern void THREAD_Init(void);
|
2001-02-28 06:29:50 +01:00
|
|
|
extern TEB *THREAD_InitStack( TEB *teb, DWORD stack_size );
|
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
|
|
|
|
1998-01-18 19:01:49 +01:00
|
|
|
/* scheduler/sysdeps.c */
|
2003-08-21 23:34:33 +02:00
|
|
|
extern int SYSDEPS_SpawnThread( void (*func)(TEB *), TEB *teb );
|
1999-06-22 13:43:42 +02:00
|
|
|
extern void SYSDEPS_SetCurThread( TEB *teb );
|
2003-04-01 06:39:35 +02:00
|
|
|
extern int SYSDEPS_GetUnixTid(void);
|
2002-10-01 20:07:37 +02:00
|
|
|
extern void DECLSPEC_NORETURN SYSDEPS_ExitThread( int status );
|
|
|
|
extern void DECLSPEC_NORETURN SYSDEPS_AbortThread( int status );
|
2002-01-07 19:04:07 +01:00
|
|
|
|
|
|
|
/* signal handling */
|
|
|
|
extern BOOL SIGNAL_Init(void);
|
2003-03-22 00:45:26 +01:00
|
|
|
extern void SIGNAL_Block(void);
|
|
|
|
extern void SIGNAL_Unblock(void);
|
2002-01-07 19:04:07 +01:00
|
|
|
extern void SIGNAL_Reset(void);
|
1998-01-18 19:01:49 +01:00
|
|
|
|
1997-01-01 18:29:55 +01:00
|
|
|
#endif /* __WINE_THREAD_H */
|