Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
5625c607
Commit
5625c607
authored
Mar 01, 2008
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Get rid of the global thread.h header.
parent
848383ac
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
76 additions
and
174 deletions
+76
-174
file.c
dlls/kernel32/file.c
+0
-1
instr.c
dlls/kernel32/instr.c
+5
-5
module.c
dlls/kernel32/module.c
+0
-1
task.c
dlls/kernel32/task.c
+0
-1
thread.c
dlls/kernel32/thread.c
+0
-1
wowthunk.c
dlls/kernel32/wowthunk.c
+2
-3
directory.c
dlls/ntdll/directory.c
+0
-1
env.c
dlls/ntdll/env.c
+0
-1
file.c
dlls/ntdll/file.c
+0
-1
path.c
dlls/ntdll/path.c
+0
-1
signal_i386.c
dlls/ntdll/signal_i386.c
+7
-8
sync.c
dlls/ntdll/sync.c
+1
-1
thread.c
dlls/ntdll/thread.c
+1
-1
dosvm.c
dlls/winedos/dosvm.c
+5
-5
int31.c
dlls/winedos/int31.c
+15
-15
interrupts.c
dlls/winedos/interrupts.c
+2
-3
thread.h
include/thread.h
+0
-115
winternl.h
include/winternl.h
+31
-6
make_makefiles
tools/make_makefiles
+0
-1
relay.c
tools/winebuild/relay.c
+7
-3
No files found.
dlls/kernel32/file.c
View file @
5625c607
...
...
@@ -45,7 +45,6 @@
#include "wine/exception.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "thread.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
file
);
...
...
dlls/kernel32/instr.c
View file @
5625c607
...
...
@@ -27,9 +27,9 @@
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "wine/winuser16.h"
#include "excpt.h"
#include "thread.h"
#include "wine/debug.h"
#include "kernel_private.h"
#include "kernel16_private.h"
...
...
@@ -851,16 +851,16 @@ DWORD __wine_emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT86 *context )
return
ExceptionContinueExecution
;
case
0xfa
:
/* cli */
NtCurrentTeb
()
->
dpmi_vif
=
0
;
get_vm86_teb_info
()
->
dpmi_vif
=
0
;
context
->
Eip
+=
prefixlen
+
1
;
return
ExceptionContinueExecution
;
case
0xfb
:
/* sti */
NtCurrentTeb
()
->
dpmi_vif
=
1
;
get_vm86_teb_info
()
->
dpmi_vif
=
1
;
context
->
Eip
+=
prefixlen
+
1
;
if
(
NtCurrentTeb
()
->
vm86_pending
)
if
(
get_vm86_teb_info
()
->
vm86_pending
)
{
NtCurrentTeb
()
->
vm86_pending
=
0
;
get_vm86_teb_info
()
->
vm86_pending
=
0
;
rec
->
ExceptionCode
=
EXCEPTION_VM86_STI
;
break
;
/* Handle the pending event. */
}
...
...
dlls/kernel32/module.c
View file @
5625c607
...
...
@@ -36,7 +36,6 @@
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "thread.h"
#include "kernel_private.h"
#include "wine/exception.h"
...
...
dlls/kernel32/task.c
View file @
5625c607
...
...
@@ -37,7 +37,6 @@
#include "winuser.h"
#include "wine/winbase16.h"
#include "thread.h"
#include "winternl.h"
#include "toolhelp.h"
#include "kernel_private.h"
...
...
dlls/kernel32/thread.c
View file @
5625c607
...
...
@@ -34,7 +34,6 @@
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "thread.h"
#include "wine/winbase16.h"
#include "wine/exception.h"
#include "wine/library.h"
...
...
dlls/kernel32/wowthunk.c
View file @
5625c607
...
...
@@ -31,7 +31,6 @@
#include "winerror.h"
#include "wownt32.h"
#include "excpt.h"
#include "thread.h"
#include "winternl.h"
#include "kernel_private.h"
#include "kernel16_private.h"
...
...
@@ -265,7 +264,7 @@ static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RE
* emulated because the instruction emulation requires
* original CS:IP and the emulation may change TEB.dpmi_vif.
*/
if
(
NtCurrentTeb
()
->
dpmi_vif
)
if
(
get_vm86_teb_info
()
->
dpmi_vif
)
insert_event_check
(
context
);
if
(
ret
!=
ExceptionContinueSearch
)
return
ret
;
...
...
@@ -625,7 +624,7 @@ BOOL WINAPI K32WOWCallback16Ex( DWORD vpfn16, DWORD dwFlags,
* Note that wine_call_to_16_regs overwrites context stack
* pointer so we may modify it here without a problem.
*/
if
(
NtCurrentTeb
()
->
dpmi_vif
)
if
(
get_vm86_teb_info
()
->
dpmi_vif
)
{
context
->
SegSs
=
wine_get_ds
();
context
->
Esp
=
(
DWORD
)
stack
;
...
...
dlls/ntdll/directory.c
View file @
5625c607
...
...
@@ -64,7 +64,6 @@
#define WIN32_NO_STATUS
#include "windef.h"
#include "winnt.h"
#include "thread.h"
#include "winternl.h"
#include "ntdll_misc.h"
#include "wine/unicode.h"
...
...
dlls/ntdll/env.c
View file @
5625c607
...
...
@@ -29,7 +29,6 @@
#include "winternl.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "thread.h"
#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
environ
);
...
...
dlls/ntdll/file.c
View file @
5625c607
...
...
@@ -73,7 +73,6 @@
#define WIN32_NO_STATUS
#include "wine/unicode.h"
#include "wine/debug.h"
#include "thread.h"
#include "wine/server.h"
#include "ntdll_misc.h"
...
...
dlls/ntdll/path.c
View file @
5625c607
...
...
@@ -39,7 +39,6 @@
#include "wine/unicode.h"
#include "wine/debug.h"
#include "wine/library.h"
#include "thread.h"
#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
file
);
...
...
dlls/ntdll/signal_i386.c
View file @
5625c607
...
...
@@ -56,7 +56,6 @@
#endif
#include "windef.h"
#include "thread.h"
#include "wine/library.h"
#include "ntdll_misc.h"
#include "wine/exception.h"
...
...
@@ -532,7 +531,7 @@ static void merge_vm86_pending_flags( EXCEPTION_RECORD *rec )
* we are returning from exception handler, pending events
* will be rechecked after each raised exception.
*/
while
(
check_pending
&&
NtCurrentTeb
()
->
vm86_pending
)
while
(
check_pending
&&
get_vm86_teb_info
()
->
vm86_pending
)
{
check_pending
=
FALSE
;
ntdll_get_thread_data
()
->
vm86_ptr
=
NULL
;
...
...
@@ -554,7 +553,7 @@ static void merge_vm86_pending_flags( EXCEPTION_RECORD *rec )
rec
->
ExceptionAddress
=
(
LPVOID
)
vcontext
.
Eip
;
vcontext
.
EFlags
&=
~
VIP_MASK
;
NtCurrentTeb
()
->
vm86_pending
=
0
;
get_vm86_teb_info
()
->
vm86_pending
=
0
;
__regs_RtlRaiseException
(
rec
,
&
vcontext
);
restore_vm86_context
(
&
vcontext
,
vm86
);
...
...
@@ -569,7 +568,7 @@ static void merge_vm86_pending_flags( EXCEPTION_RECORD *rec )
* that the following operation compiles into atomic
* instruction.
*/
vm86
->
regs
.
eflags
|=
NtCurrentTeb
()
->
vm86_pending
;
vm86
->
regs
.
eflags
|=
get_vm86_teb_info
()
->
vm86_pending
;
}
#endif
/* __HAVE_VM86 */
...
...
@@ -1212,7 +1211,7 @@ static void WINAPI raise_exception( EXCEPTION_RECORD *rec, CONTEXT *context )
static
void
WINAPI
raise_vm86_sti_exception
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
{
/* merge_vm86_pending_flags merges the vm86_pending flag in safely */
NtCurrentTeb
()
->
vm86_pending
|=
VIP_MASK
;
get_vm86_teb_info
()
->
vm86_pending
|=
VIP_MASK
;
if
(
ntdll_get_thread_data
()
->
vm86_ptr
)
{
...
...
@@ -1224,12 +1223,12 @@ static void WINAPI raise_vm86_sti_exception( EXCEPTION_RECORD *rec, CONTEXT *con
}
merge_vm86_pending_flags
(
rec
);
}
else
if
(
NtCurrentTeb
()
->
dpmi_vif
&&
else
if
(
get_vm86_teb_info
()
->
dpmi_vif
&&
!
wine_ldt_is_system
(
context
->
SegCs
)
&&
!
wine_ldt_is_system
(
context
->
SegSs
))
{
/* Executing DPMI code and virtual interrupts are enabled. */
NtCurrentTeb
()
->
vm86_pending
=
0
;
get_vm86_teb_info
()
->
vm86_pending
=
0
;
__regs_RtlRaiseException
(
rec
,
context
);
}
done:
...
...
@@ -1614,7 +1613,7 @@ void __wine_enter_vm86( CONTEXT *context )
case
VM86_STI
:
/* sti/popf/iret instruction enabled virtual interrupts */
context
->
EFlags
|=
VIF_MASK
;
context
->
EFlags
&=
~
VIP_MASK
;
NtCurrentTeb
()
->
vm86_pending
=
0
;
get_vm86_teb_info
()
->
vm86_pending
=
0
;
rec
.
ExceptionCode
=
EXCEPTION_VM86_STI
;
break
;
case
VM86_PICRETURN
:
/* return due to pending PIC request */
...
...
dlls/ntdll/sync.c
View file @
5625c607
...
...
@@ -53,7 +53,7 @@
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "windef.h"
#include "
thread
.h"
#include "
winternl
.h"
#include "wine/server.h"
#include "wine/debug.h"
#include "ntdll_misc.h"
...
...
dlls/ntdll/thread.c
View file @
5625c607
...
...
@@ -22,6 +22,7 @@
#include "wine/port.h"
#include <assert.h>
#include <stdarg.h>
#include <sys/types.h>
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
...
...
@@ -33,7 +34,6 @@
#define NONAMELESSUNION
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "thread.h"
#include "winternl.h"
#include "wine/library.h"
#include "wine/server.h"
...
...
dlls/winedos/dosvm.c
View file @
5625c607
...
...
@@ -42,13 +42,13 @@
#include "wine/exception.h"
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "wingdi.h"
#include "winuser.h"
#include "wownt32.h"
#include "winnt.h"
#include "wincon.h"
#include "thread.h"
#include "dosexe.h"
#include "dosvm.h"
#include "wine/debug.h"
...
...
@@ -222,7 +222,7 @@ void DOSVM_SendQueuedEvents( CONTEXT86 *context )
* We disable it here because this prevents some
* unnecessary calls to this function.
*/
NtCurrentTeb
()
->
vm86_pending
=
0
;
get_vm86_teb_info
()
->
vm86_pending
=
0
;
}
#ifdef MZ_SUPPORTED
...
...
@@ -234,7 +234,7 @@ void DOSVM_SendQueuedEvents( CONTEXT86 *context )
* pending events, make sure that pending flag is turned on.
*/
TRACE
(
"Another event is pending, setting VIP flag.
\n
"
);
NtCurrentTeb
()
->
vm86_pending
|=
VIP_MASK
;
get_vm86_teb_info
()
->
vm86_pending
|=
VIP_MASK
;
}
#else
...
...
@@ -623,7 +623,7 @@ void WINAPI DOSVM_PIC_ioport_out( WORD port, BYTE val)
if
(
DOSVM_HasPendingEvents
())
{
TRACE
(
"Another event pending, setting pending flag
\n
"
);
NtCurrentTeb
()
->
vm86_pending
|=
VIP_MASK
;
get_vm86_teb_info
()
->
vm86_pending
|=
VIP_MASK
;
}
}
...
...
@@ -691,7 +691,7 @@ void WINAPI DOSVM_AcknowledgeIRQ( CONTEXT86 *context )
* to turn VIF flag on before they return.
*/
if
(
!
ISV86
(
context
))
NtCurrentTeb
()
->
dpmi_vif
=
1
;
get_vm86_teb_info
()
->
dpmi_vif
=
1
;
}
...
...
dlls/winedos/int31.c
View file @
5625c607
...
...
@@ -25,6 +25,7 @@
#include "windef.h"
#include "winbase.h"
#include "winternl.h"
#include "wine/winbase16.h"
#include "wownt32.h"
#include "dosexe.h"
...
...
@@ -32,7 +33,6 @@
#include "excpt.h"
#include "wine/debug.h"
#include "wine/exception.h"
#include "thread.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
int31
);
...
...
@@ -353,10 +353,10 @@ __ASM_GLOBAL_FUNC(DPMI_CallRMCB32,
*/
static
void
DPMI_CallRMCBProc
(
CONTEXT86
*
context
,
RMCB
*
rmcb
,
WORD
flag
)
{
DWORD
old_vif
=
NtCurrentTeb
()
->
dpmi_vif
;
DWORD
old_vif
=
get_vm86_teb_info
()
->
dpmi_vif
;
/* Disable virtual interrupts. */
NtCurrentTeb
()
->
dpmi_vif
=
0
;
get_vm86_teb_info
()
->
dpmi_vif
=
0
;
if
(
wine_ldt_is_system
(
rmcb
->
proc_sel
))
{
/* Wine-internal RMCB, call directly */
...
...
@@ -404,7 +404,7 @@ static void DPMI_CallRMCBProc( CONTEXT86 *context, RMCB *rmcb, WORD flag )
}
__EXCEPT
(
dpmi_exception_handler
)
{
}
__ENDTRY
/* Restore virtual interrupt flag. */
NtCurrentTeb
()
->
dpmi_vif
=
old_vif
;
get_vm86_teb_info
()
->
dpmi_vif
=
old_vif
;
}
...
...
@@ -734,7 +734,7 @@ void WINAPI DOSVM_RawModeSwitchHandler( CONTEXT86 *context )
rm_ctx
.
SegGs
=
0
;
/* Copy interrupt state. */
if
(
NtCurrentTeb
()
->
dpmi_vif
)
if
(
get_vm86_teb_info
()
->
dpmi_vif
)
rm_ctx
.
EFlags
=
V86_FLAG
|
VIF_MASK
;
else
rm_ctx
.
EFlags
=
V86_FLAG
;
...
...
@@ -764,9 +764,9 @@ void WINAPI DOSVM_RawModeSwitchHandler( CONTEXT86 *context )
/* Copy interrupt state. */
if
(
rm_ctx
.
EFlags
&
VIF_MASK
)
NtCurrentTeb
()
->
dpmi_vif
=
1
;
get_vm86_teb_info
()
->
dpmi_vif
=
1
;
else
NtCurrentTeb
()
->
dpmi_vif
=
0
;
get_vm86_teb_info
()
->
dpmi_vif
=
0
;
/* Return to new address and hope that we didn't mess up */
TRACE
(
"re-entering protected mode at %04x:%08x
\n
"
,
...
...
@@ -1348,22 +1348,22 @@ void WINAPI DOSVM_Int31Handler( CONTEXT86 *context )
case
0x0900
:
/* Get and Disable Virtual Interrupt State */
TRACE
(
"Get and Disable Virtual Interrupt State: %d
\n
"
,
NtCurrentTeb
()
->
dpmi_vif
);
SET_AL
(
context
,
NtCurrentTeb
()
->
dpmi_vif
?
1
:
0
);
NtCurrentTeb
()
->
dpmi_vif
=
0
;
get_vm86_teb_info
()
->
dpmi_vif
);
SET_AL
(
context
,
get_vm86_teb_info
()
->
dpmi_vif
?
1
:
0
);
get_vm86_teb_info
()
->
dpmi_vif
=
0
;
break
;
case
0x0901
:
/* Get and Enable Virtual Interrupt State */
TRACE
(
"Get and Enable Virtual Interrupt State: %d
\n
"
,
NtCurrentTeb
()
->
dpmi_vif
);
SET_AL
(
context
,
NtCurrentTeb
()
->
dpmi_vif
?
1
:
0
);
NtCurrentTeb
()
->
dpmi_vif
=
1
;
get_vm86_teb_info
()
->
dpmi_vif
);
SET_AL
(
context
,
get_vm86_teb_info
()
->
dpmi_vif
?
1
:
0
);
get_vm86_teb_info
()
->
dpmi_vif
=
1
;
break
;
case
0x0902
:
/* Get Virtual Interrupt State */
TRACE
(
"Get Virtual Interrupt State: %d
\n
"
,
NtCurrentTeb
()
->
dpmi_vif
);
SET_AL
(
context
,
NtCurrentTeb
()
->
dpmi_vif
?
1
:
0
);
get_vm86_teb_info
()
->
dpmi_vif
);
SET_AL
(
context
,
get_vm86_teb_info
()
->
dpmi_vif
?
1
:
0
);
break
;
case
0x0e00
:
/* Get Coprocessor Status (1.0) */
...
...
dlls/winedos/interrupts.c
View file @
5625c607
...
...
@@ -23,11 +23,10 @@
#include <stdio.h>
#include "dosexe.h"
#include "winternl.h"
#include "wine/debug.h"
#include "wine/winbase16.h"
#include "thread.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
int
);
WINE_DECLARE_DEBUG_CHANNEL
(
relay
);
...
...
@@ -179,7 +178,7 @@ static void DOSVM_IntProcRelay( CONTEXT86 *context, LPVOID data )
static
void
DOSVM_PrepareIRQ
(
CONTEXT86
*
context
,
BOOL
isbuiltin
)
{
/* Disable virtual interrupts. */
NtCurrentTeb
()
->
dpmi_vif
=
0
;
get_vm86_teb_info
()
->
dpmi_vif
=
0
;
if
(
!
isbuiltin
)
{
...
...
include/thread.h
deleted
100644 → 0
View file @
848383ac
/*
* Thread definitions
*
* Copyright 1996 Alexandre Julliard
*
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_THREAD_H
#define __WINE_THREAD_H
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#define WINE_NO_TEB
#include <winternl.h>
#ifndef WINE_TEB_DEFINED
#define WINE_TEB_DEFINED
typedef
struct
_TEB
{
NT_TIB
Tib
;
/* 12- 00 Thread information block */
PVOID
EnvironmentPointer
;
/* 12- 1c EnvironmentPointer (win95: tib flags + win16 mutex count) */
CLIENT_ID
ClientId
;
/* -2- 20 Process and thread id (win95: debug context) */
PVOID
ActiveRpcHandle
;
/* 028 */
PVOID
ThreadLocalStoragePointer
;
/* 02c Pointer to TLS array */
PEB
*
Peb
;
/* 030 owning process PEB */
DWORD
LastErrorValue
;
/* 034 Last error code */
ULONG
CountOfOwnedCriticalSections
;
/* 038 */
PVOID
CsrClientThread
;
/* 03c */
PVOID
Win32ThreadInfo
;
/* 040 */
ULONG
Win32ClientInfo
[
0x1f
];
/* 044 */
PVOID
WOW32Reserved
;
/* 0c0 */
ULONG
CurrentLocale
;
/* 0c4 */
ULONG
FpSoftwareStatusRegister
;
/* 0c8 */
PVOID
SystemReserved1
[
54
];
/* 0cc */
LONG
ExceptionCode
;
/* 1a4 */
ACTIVATION_CONTEXT_STACK
ActivationContextStack
;
/* 1a8 */
BYTE
SpareBytes1
[
24
];
/* 1bc */
PVOID
SystemReserved2
[
10
];
/* 1d4 */
/* The following are Wine-specific fields (NT: GdiTebBatch) */
DWORD
dpmi_vif
;
/* 1fc protected mode virtual interrupt flag */
ULONG_PTR
vm86_pending
;
/* 200 data for vm86 mode */
/* here is plenty space for wine specific fields (don't forget to change pad6!!) */
DWORD
pad6
[
310
];
/* 204 */
ULONG
gdiRgn
;
/* 6dc */
ULONG
gdiPen
;
/* 6e0 */
ULONG
gdiBrush
;
/* 6e4 */
CLIENT_ID
RealClientId
;
/* 6e8 */
HANDLE
GdiCachedProcessHandle
;
/* 6f0 */
ULONG
GdiClientPID
;
/* 6f4 */
ULONG
GdiClientTID
;
/* 6f8 */
PVOID
GdiThreadLocaleInfo
;
/* 6fc */
PVOID
UserReserved
[
5
];
/* 700 */
PVOID
glDispachTable
[
280
];
/* 714 */
ULONG
glReserved1
[
26
];
/* b74 */
PVOID
glReserved2
;
/* bdc */
PVOID
glSectionInfo
;
/* be0 */
PVOID
glSection
;
/* be4 */
PVOID
glTable
;
/* be8 */
PVOID
glCurrentRC
;
/* bec */
PVOID
glContext
;
/* bf0 */
ULONG
LastStatusValue
;
/* bf4 */
UNICODE_STRING
StaticUnicodeString
;
/* bf8 */
WCHAR
StaticUnicodeBuffer
[
261
];
/* c00 */
PVOID
DeallocationStack
;
/* e0c */
PVOID
TlsSlots
[
64
];
/* e10 */
LIST_ENTRY
TlsLinks
;
/* f10 */
PVOID
Vdm
;
/* f18 */
PVOID
ReservedForNtRpc
;
/* f1c */
PVOID
DbgSsReserved
[
2
];
/* f20 */
ULONG
HardErrorDisabled
;
/* f28 */
PVOID
Instrumentation
[
16
];
/* f2c */
PVOID
WinSockData
;
/* f6c */
ULONG
GdiBatchCount
;
/* f70 */
ULONG
Spare2
;
/* f74 */
ULONG
Spare3
;
/* f78 */
ULONG
Spare4
;
/* f7c */
PVOID
ReservedForOle
;
/* f80 */
ULONG
WaitingOnLoaderLock
;
/* f84 */
PVOID
Reserved5
[
3
];
/* f88 */
PVOID
*
TlsExpansionSlots
;
/* f94 */
}
TEB
;
#endif
/* WINE_TEB_DEFINED */
/* The thread information for 16-bit threads */
/* NtCurrentTeb()->SubSystemTib points to this */
typedef
struct
{
void
*
unknown
;
/* 00 unknown */
UNICODE_STRING
*
exe_name
;
/* 04 exe module name */
/* the following fields do not exist under Windows */
UNICODE_STRING
exe_str
;
/* exe name string pointed to by exe_name */
CURDIR
curdir
;
/* current directory */
WCHAR
curdir_buffer
[
MAX_PATH
];
}
WIN16_SUBSYSTEM_TIB
;
#endif
/* __WINE_THREAD_H */
include/winternl.h
View file @
5625c607
...
...
@@ -295,9 +295,6 @@ typedef struct _PEB
/***********************************************************************
* TEB data structure
*/
#ifndef WINE_NO_TEB
/* don't define TEB if included from thread.h */
# ifndef WINE_TEB_DEFINED
# define WINE_TEB_DEFINED
typedef
struct
_TEB
{
NT_TIB
Tib
;
/* 000 */
...
...
@@ -319,7 +316,7 @@ typedef struct _TEB
ACTIVATION_CONTEXT_STACK
ActivationContextStack
;
/* 1a8 */
BYTE
SpareBytes1
[
24
];
/* 1bc used for ntdll private data in Wine */
PVOID
SystemReserved2
[
10
];
/* 1d4 used for ntdll private data in Wine */
GDI_TEB_BATCH
GdiTebBatch
;
/* 1fc */
GDI_TEB_BATCH
GdiTebBatch
;
/* 1fc
used for vm86 private data in Wine
*/
ULONG
gdiRgn
;
/* 6dc */
ULONG
gdiPen
;
/* 6e0 */
ULONG
gdiBrush
;
/* 6e4 */
...
...
@@ -366,8 +363,6 @@ typedef struct _TEB
PVOID
ActiveFrame
;
/* fb0 */
PVOID
*
FlsSlots
;
/* fb4 */
}
TEB
,
*
PTEB
;
# endif
/* WINE_TEB_DEFINED */
#endif
/* WINE_NO_TEB */
/***********************************************************************
* Enums
...
...
@@ -2444,6 +2439,36 @@ static inline PLIST_ENTRY RemoveTailList(PLIST_ENTRY le)
return
e
;
}
#ifdef __WINESRC__
/* FIXME: private structure for vm86 mode, stored in teb->GdiTebBatch */
typedef
struct
{
DWORD
dpmi_vif
;
DWORD
vm86_pending
;
}
WINE_VM86_TEB_INFO
;
static
inline
WINE_VM86_TEB_INFO
*
get_vm86_teb_info
(
void
)
{
return
(
WINE_VM86_TEB_INFO
*
)
&
NtCurrentTeb
()
->
GdiTebBatch
;
}
/* The thread information for 16-bit threads */
/* NtCurrentTeb()->SubSystemTib points to this */
typedef
struct
{
void
*
unknown
;
/* 00 unknown */
UNICODE_STRING
*
exe_name
;
/* 04 exe module name */
/* the following fields do not exist under Windows */
UNICODE_STRING
exe_str
;
/* exe name string pointed to by exe_name */
CURDIR
curdir
;
/* current directory */
WCHAR
curdir_buffer
[
MAX_PATH
];
}
WIN16_SUBSYSTEM_TIB
;
#endif
/* __WINESRC__ */
#ifdef __cplusplus
}
/* extern "C" */
#endif
/* defined(__cplusplus) */
...
...
tools/make_makefiles
View file @
5625c607
...
...
@@ -103,7 +103,6 @@ my @ignore_srcs = (
);
my
%
private_headers
=
(
"thread.h"
=>
1
,
"wine/irot.idl"
=>
1
,
"wine/list.h"
=>
1
,
"wine/mmsystem16.h"
=>
1
,
...
...
tools/winebuild/relay.c
View file @
5625c607
...
...
@@ -26,8 +26,10 @@
#include "wine/port.h"
#include <ctype.h>
#include <stdarg.h>
#include "thread.h"
#define __WINESRC__
/* FIXME: for WINE_VM86_TEB_INFO */
#include "winternl.h"
#include "wine/winbase16.h"
#include "build.h"
...
...
@@ -891,9 +893,11 @@ static void BuildPendingEventCheck(void)
/* Check for pending events. */
output
(
"
\t
.byte 0x64
\n\t
testl $0xffffffff,(%d)
\n
"
,
STRUCTOFFSET
(
TEB
,
vm86_pending
)
);
output
(
"
\t
.byte 0x64
\n\t
testl $0xffffffff,(%d)
\n
"
,
STRUCTOFFSET
(
TEB
,
GdiTebBatch
)
+
STRUCTOFFSET
(
WINE_VM86_TEB_INFO
,
vm86_pending
)
);
output
(
"
\t
je %s
\n
"
,
asm_name
(
"DPMI_PendingEventCheck_Cleanup"
)
);
output
(
"
\t
.byte 0x64
\n\t
testl $0xffffffff,(%d)
\n
"
,
STRUCTOFFSET
(
TEB
,
dpmi_vif
)
);
output
(
"
\t
.byte 0x64
\n\t
testl $0xffffffff,(%d)
\n
"
,
STRUCTOFFSET
(
TEB
,
GdiTebBatch
)
+
STRUCTOFFSET
(
WINE_VM86_TEB_INFO
,
dpmi_vif
)
);
output
(
"
\t
je %s
\n
"
,
asm_name
(
"DPMI_PendingEventCheck_Cleanup"
)
);
/* Process pending events. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment