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
436eda30
Commit
436eda30
authored
Nov 25, 2003
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed task.h.
parent
eff671ef
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
144 additions
and
193 deletions
+144
-193
kernel_main.c
dlls/kernel/kernel_main.c
+0
-1
ne_module.c
dlls/kernel/ne_module.c
+0
-1
ne_segment.c
dlls/kernel/ne_segment.c
+0
-1
resource16.c
dlls/kernel/resource16.c
+0
-1
task.c
dlls/kernel/task.c
+23
-6
thunk.c
dlls/kernel/thunk.c
+0
-1
wowthunk.c
dlls/kernel/wowthunk.c
+1
-1
user16.c
dlls/user/user16.c
+0
-1
int21.c
dlls/winedos/int21.c
+0
-1
int31.c
dlls/winedos/int31.c
+0
-1
interrupts.c
dlls/winedos/interrupts.c
+0
-1
module.c
dlls/winedos/module.c
+0
-1
vxd.c
dlls/winedos/vxd.c
+0
-1
drive.c
files/drive.c
+0
-1
module.h
include/module.h
+32
-4
task.h
include/task.h
+0
-170
winbase16.h
include/wine/winbase16.h
+88
-0
No files found.
dlls/kernel/kernel_main.c
View file @
436eda30
...
...
@@ -40,7 +40,6 @@
#include "global.h"
#include "miscemu.h"
#include "module.h"
#include "task.h"
#include "thread.h"
#include "stackframe.h"
#include "wincon.h"
...
...
dlls/kernel/ne_module.c
View file @
436eda30
...
...
@@ -43,7 +43,6 @@
#include "toolhelp.h"
#include "global.h"
#include "file.h"
#include "task.h"
#include "builtin16.h"
#include "stackframe.h"
#include "excpt.h"
...
...
dlls/kernel/ne_segment.c
View file @
436eda30
...
...
@@ -37,7 +37,6 @@
#include "wownt32.h"
#include "wine/library.h"
#include "global.h"
#include "task.h"
#include "file.h"
#include "module.h"
#include "stackframe.h"
...
...
dlls/kernel/resource16.c
View file @
436eda30
...
...
@@ -36,7 +36,6 @@
#include "wine/winuser16.h"
#include "wine/unicode.h"
#include "module.h"
#include "task.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
resource
);
...
...
dlls/kernel/task.c
View file @
436eda30
...
...
@@ -44,7 +44,6 @@
#include "winternl.h"
#include "wine/server.h"
#include "stackframe.h"
#include "task.h"
#include "thread.h"
#include "toolhelp.h"
#include "kernel_private.h"
...
...
@@ -55,9 +54,27 @@ WINE_DEFAULT_DEBUG_CHANNEL(task);
WINE_DECLARE_DEBUG_CHANNEL
(
relay
);
WINE_DECLARE_DEBUG_CHANNEL
(
toolhelp
);
#include <pshpack1.h>
/* Segment containing MakeProcInstance() thunks */
typedef
struct
{
WORD
next
;
/* Selector of next segment */
WORD
magic
;
/* Thunks signature */
WORD
unused
;
WORD
free
;
/* Head of the free list */
WORD
thunks
[
4
];
/* Each thunk is 4 words long */
}
THUNKS
;
#include <poppack.h>
#define THUNK_MAGIC ('P' | ('T' << 8))
/* Min. number of thunks allocated when creating a new segment */
#define MIN_THUNKS 32
#define TDB_MAGIC ('T' | ('D' << 8))
static
THHOOK
DefaultThhook
;
THHOOK
*
pThhook
=
&
DefaultThhook
;
...
...
@@ -183,8 +200,8 @@ static SEGPTR TASK_AllocThunk(void)
if
(
!
(
pTask
=
TASK_GetCurrent
()))
return
0
;
sel
=
pTask
->
hCSAlias
;
pThunk
=
&
pTask
->
thunks
;
base
=
(
int
)
pThunk
-
(
int
)
pTask
;
pThunk
=
(
THUNKS
*
)
&
pTask
->
thunks
;
base
=
(
char
*
)
pThunk
-
(
char
*
)
pTask
;
while
(
!
pThunk
->
free
)
{
sel
=
pThunk
->
next
;
...
...
@@ -218,8 +235,8 @@ static BOOL TASK_FreeThunk( SEGPTR thunk )
if
(
!
(
pTask
=
TASK_GetCurrent
()))
return
0
;
sel
=
pTask
->
hCSAlias
;
pThunk
=
&
pTask
->
thunks
;
base
=
(
int
)
pThunk
-
(
int
)
pTask
;
pThunk
=
(
THUNKS
*
)
&
pTask
->
thunks
;
base
=
(
char
*
)
pThunk
-
(
char
*
)
pTask
;
while
(
sel
&&
(
sel
!=
HIWORD
(
thunk
)))
{
sel
=
pThunk
->
next
;
...
...
@@ -282,7 +299,7 @@ static TDB *TASK_Create( NE_MODULE *pModule, UINT16 cmdShow, TEB *teb, LPCSTR cm
/* Create the thunks block */
TASK_CreateThunks
(
hTask
,
(
int
)
&
pTask
->
thunks
-
(
int
)
pTask
,
7
);
TASK_CreateThunks
(
hTask
,
(
char
*
)
&
pTask
->
thunks
-
(
char
*
)
pTask
,
7
);
/* Copy the module name */
...
...
dlls/kernel/thunk.c
View file @
436eda30
...
...
@@ -43,7 +43,6 @@
#include "flatthunk.h"
#include "module.h"
#include "stackframe.h"
#include "task.h"
#include "kernel_private.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
thunk
);
...
...
dlls/kernel/wowthunk.c
View file @
436eda30
...
...
@@ -33,8 +33,8 @@
#include "winreg.h"
#include "winternl.h"
#include "file.h"
#include "task.h"
#include "miscemu.h"
#include "module.h"
#include "stackframe.h"
#include "kernel_private.h"
#include "wine/exception.h"
...
...
dlls/user/user16.c
View file @
436eda30
...
...
@@ -24,7 +24,6 @@
#include "windef.h"
#include "winbase.h"
#include "wownt32.h"
#include "task.h"
#include "user.h"
#include "win.h"
#include "winproc.h"
...
...
dlls/winedos/int21.c
View file @
436eda30
...
...
@@ -38,7 +38,6 @@
#include "wine/winbase16.h"
#include "dosexe.h"
#include "file.h"
#include "task.h"
#include "winerror.h"
#include "winuser.h"
#include "wine/unicode.h"
...
...
dlls/winedos/int31.c
View file @
436eda30
...
...
@@ -27,7 +27,6 @@
#include "winbase.h"
#include "wine/winbase16.h"
#include "wownt32.h"
#include "task.h"
#include "dosexe.h"
#include "excpt.h"
...
...
dlls/winedos/interrupts.c
View file @
436eda30
...
...
@@ -25,7 +25,6 @@
#include "wine/winbase16.h"
#include "thread.h"
#include "task.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
int
);
WINE_DECLARE_DEBUG_CHANNEL
(
relay
);
...
...
dlls/winedos/module.c
View file @
436eda30
...
...
@@ -43,7 +43,6 @@
#include "wingdi.h"
#include "winuser.h"
#include "winerror.h"
#include "task.h"
#include "wine/debug.h"
#include "dosexe.h"
#include "dosvm.h"
...
...
dlls/winedos/vxd.c
View file @
436eda30
...
...
@@ -42,7 +42,6 @@
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "dosexe.h"
#include "task.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
vxd
);
...
...
files/drive.c
View file @
436eda30
...
...
@@ -69,7 +69,6 @@
#include "ntddcdrm.h"
#include "drive.h"
#include "file.h"
#include "task.h"
#include "wine/unicode.h"
#include "wine/library.h"
#include "wine/server.h"
...
...
include/module.h
View file @
436eda30
...
...
@@ -98,6 +98,25 @@ typedef struct
/* of segment in memory */
}
SEGTABLEENTRY
;
/* THHOOK Kernel Data Structure */
typedef
struct
_THHOOK
{
HANDLE16
hGlobalHeap
;
/* 00 (handle BURGERMASTER) */
WORD
pGlobalHeap
;
/* 02 (selector BURGERMASTER) */
HMODULE16
hExeHead
;
/* 04 hFirstModule */
HMODULE16
hExeSweep
;
/* 06 (unused) */
HANDLE16
TopPDB
;
/* 08 (handle of KERNEL PDB) */
HANDLE16
HeadPDB
;
/* 0A (first PDB in list) */
HANDLE16
TopSizePDB
;
/* 0C (unused) */
HTASK16
HeadTDB
;
/* 0E hFirstTask */
HTASK16
CurTDB
;
/* 10 hCurrentTask */
HTASK16
LoadTDB
;
/* 12 (unused) */
HTASK16
LockTDB
;
/* 14 hLockedTask */
}
THHOOK
;
extern
THHOOK
*
pThhook
;
/* Resource types */
#define NE_SEG_TABLE(pModule) \
...
...
@@ -132,7 +151,7 @@ enum binary_type
extern
NTSTATUS
MODULE_DllThreadAttach
(
LPVOID
lpReserved
);
extern
enum
binary_type
MODULE_GetBinaryType
(
HANDLE
hfile
);
/*
loader/ne/
module.c */
/*
ne_
module.c */
extern
NE_MODULE
*
NE_GetPtr
(
HMODULE16
hModule
);
extern
WORD
NE_GetOrdinal
(
HMODULE16
hModule
,
const
char
*
name
);
extern
FARPROC16
WINAPI
NE_GetEntryPoint
(
HMODULE16
hModule
,
WORD
ordinal
);
...
...
@@ -141,10 +160,10 @@ extern BOOL16 NE_SetEntryPoint( HMODULE16 hModule, WORD ordinal, WORD offset );
extern
HANDLE
NE_OpenFile
(
NE_MODULE
*
pModule
);
extern
DWORD
NE_StartTask
(
void
);
/*
loader/ne/resource
.c */
/*
resource16
.c */
extern
HGLOBAL16
WINAPI
NE_DefResourceHandler
(
HGLOBAL16
,
HMODULE16
,
HRSRC16
);
/*
loader/ne/
segment.c */
/*
ne_
segment.c */
extern
BOOL
NE_LoadSegment
(
NE_MODULE
*
pModule
,
WORD
segnum
);
extern
BOOL
NE_LoadAllSegments
(
NE_MODULE
*
pModule
);
extern
BOOL
NE_CreateSegment
(
NE_MODULE
*
pModule
,
int
segnum
);
...
...
@@ -154,7 +173,16 @@ extern void NE_InitializeDLLs( HMODULE16 hModule );
extern
void
NE_DllProcessAttach
(
HMODULE16
hModule
);
extern
void
NE_CallUserSignalProc
(
HMODULE16
hModule
,
UINT16
code
);
/* loader/loadorder.c */
/* task.c */
extern
void
TASK_CreateMainTask
(
void
);
extern
HTASK16
TASK_SpawnTask
(
NE_MODULE
*
pModule
,
WORD
cmdShow
,
LPCSTR
cmdline
,
BYTE
len
,
HANDLE
*
hThread
);
extern
void
TASK_ExitTask
(
void
);
extern
HTASK16
TASK_GetTaskFromThread
(
DWORD
thread
);
extern
TDB
*
TASK_GetCurrent
(
void
);
extern
void
TASK_InstallTHHook
(
THHOOK
*
pNewThook
);
/* loadorder.c */
extern
void
MODULE_GetLoadOrderW
(
enum
loadorder_type
plo
[],
const
WCHAR
*
app_name
,
const
WCHAR
*
path
,
BOOL
win32
);
extern
void
MODULE_GetLoadOrderA
(
enum
loadorder_type
plo
[],
const
WCHAR
*
app_name
,
...
...
include/task.h
deleted
100644 → 0
View file @
eff671ef
/*
* Task definitions
*
* Copyright 1995 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_TASK_H
#define __WINE_TASK_H
#include <windef.h>
#include <wine/windef16.h>
#include <pshpack1.h>
/* Process database (i.e. a normal DOS PSP) */
typedef
struct
{
WORD
int20
;
/* 00 int 20h instruction */
WORD
nextParagraph
;
/* 02 Segment of next paragraph */
BYTE
reserved1
;
BYTE
dispatcher
[
5
];
/* 05 Long call to DOS */
FARPROC16
savedint22
WINE_PACKED
;
/* 0a Saved int 22h handler */
FARPROC16
savedint23
WINE_PACKED
;
/* 0e Saved int 23h handler */
FARPROC16
savedint24
WINE_PACKED
;
/* 12 Saved int 24h handler */
WORD
parentPSP
;
/* 16 Selector of parent PSP */
BYTE
fileHandles
[
20
];
/* 18 Open file handles */
HANDLE16
environment
;
/* 2c Selector of environment */
DWORD
saveStack
;
/* 2e SS:SP on last int21 call */
WORD
nbFiles
;
/* 32 Number of file handles */
SEGPTR
fileHandlesPtr
;
/* 34 Pointer to file handle table */
HANDLE16
hFileHandles
;
/* 38 Handle to fileHandlesPtr */
WORD
reserved3
[
17
];
BYTE
fcb1
[
16
];
/* 5c First FCB */
BYTE
fcb2
[
20
];
/* 6c Second FCB */
BYTE
cmdLine
[
128
];
/* 80 Command-line (first byte is len)*/
BYTE
padding
[
16
];
/* Some apps access beyond the end of the cmd line */
}
PDB16
;
/* Segment containing MakeProcInstance() thunks */
typedef
struct
{
WORD
next
;
/* Selector of next segment */
WORD
magic
;
/* Thunks signature */
WORD
unused
;
WORD
free
;
/* Head of the free list */
WORD
thunks
[
4
];
/* Each thunk is 4 words long */
}
THUNKS
;
#define THUNK_MAGIC ('P' | ('T' << 8))
struct
_TEB
;
struct
_WSINFO
;
struct
_NE_MODULE
;
/* signal proc typedef */
typedef
void
(
CALLBACK
*
USERSIGNALPROC
)(
HANDLE16
,
UINT16
,
UINT16
,
HINSTANCE16
,
HQUEUE16
);
/* Task database. See 'Windows Internals' p. 226.
* Note that 16-bit OLE 2 libs like to read it directly
* so we have to keep entry offsets as they are.
*/
typedef
struct
_TDB
{
HTASK16
hNext
;
/* 00 Selector of next TDB */
DWORD
ss_sp
WINE_PACKED
;
/* 02 Stack pointer of task */
WORD
nEvents
;
/* 06 Events for this task */
INT16
priority
;
/* 08 Task priority, -32..15 */
WORD
unused1
;
/* 0a */
HTASK16
hSelf
;
/* 0c Selector of this TDB */
HANDLE16
hPrevInstance
;
/* 0e Previous instance of module */
DWORD
unused2
;
/* 10 */
WORD
ctrlword8087
;
/* 14 80x87 control word */
WORD
flags
;
/* 16 Task flags */
UINT16
error_mode
;
/* 18 Error mode (see SetErrorMode)*/
WORD
version
;
/* 1a Expected Windows version */
HANDLE16
hInstance
;
/* 1c Instance handle for task */
HMODULE16
hModule
;
/* 1e Module handle */
HQUEUE16
hQueue
;
/* 20 Selector of task queue */
HTASK16
hParent
;
/* 22 Selector of TDB of parent */
WORD
signal_flags
;
/* 24 Flags for signal handler */
FARPROC16
sighandler
WINE_PACKED
;
/* 26 Signal handler */
FARPROC16
userhandler
WINE_PACKED
;
/* 2a USER signal handler */
FARPROC16
discardhandler
WINE_PACKED
;
/* 2e Handler for GlobalNotify() */
FARPROC16
int0
WINE_PACKED
;
/* 32 int 0 (divide by 0) handler */
FARPROC16
int2
WINE_PACKED
;
/* 36 int 2 (NMI) handler */
FARPROC16
int4
WINE_PACKED
;
/* 3a int 4 (INTO) handler */
FARPROC16
int6
WINE_PACKED
;
/* 3e int 6 (invalid opc) handler */
FARPROC16
int7
WINE_PACKED
;
/* 42 int 7 (coprocessor) handler */
FARPROC16
int3e
WINE_PACKED
;
/* 46 int 3e (80x87 emu) handler */
FARPROC16
int75
WINE_PACKED
;
/* 4a int 75 (80x87 error) handler */
DWORD
compat_flags
WINE_PACKED
;
/* 4e Compatibility flags */
BYTE
unused4
[
2
];
/* 52 */
struct
_TEB
*
teb
;
/* 54 Pointer to thread database */
BYTE
unused5
[
8
];
/* 58 */
HANDLE16
hPDB
;
/* 60 Selector of PDB (i.e. PSP) */
SEGPTR
dta
WINE_PACKED
;
/* 62 Current DTA */
BYTE
curdrive
;
/* 66 Current drive */
BYTE
curdir
[
65
];
/* 67 Current directory */
WORD
nCmdShow
;
/* a8 cmdShow parameter to WinMain */
HTASK16
hYieldTo
;
/* aa Next task to schedule */
DWORD
dlls_to_init
;
/* ac Ptr to DLLs to initialize */
HANDLE16
hCSAlias
;
/* b0 Code segment for this TDB */
THUNKS
thunks
WINE_PACKED
;
/* b2 Make proc instance thunks */
WORD
more_thunks
[
6
*
4
];
/* c2 Space for 6 more thunks */
BYTE
module_name
[
8
];
/* f2 Module name for task */
WORD
magic
;
/* fa TDB signature */
HANDLE
hEvent
;
/* fc scheduler event handle */
PDB16
pdb
;
/* 100 PDB for this task */
}
TDB
;
#define TDB_MAGIC ('T' | ('D' << 8))
/* TDB flags */
#define TDBF_WINOLDAP 0x0001
#define TDBF_OS2APP 0x0008
#define TDBF_WIN32 0x0010
/* Windows 3.1 USER signals */
#define USIG16_TERMINATION 0x0020
#define USIG16_DLL_LOAD 0x0040
#define USIG16_DLL_UNLOAD 0x0080
#define USIG16_GPF 0x0666
/* THHOOK Kernel Data Structure */
typedef
struct
_THHOOK
{
HANDLE16
hGlobalHeap
;
/* 00 (handle BURGERMASTER) */
WORD
pGlobalHeap
;
/* 02 (selector BURGERMASTER) */
HMODULE16
hExeHead
;
/* 04 hFirstModule */
HMODULE16
hExeSweep
;
/* 06 (unused) */
HANDLE16
TopPDB
;
/* 08 (handle of KERNEL PDB) */
HANDLE16
HeadPDB
;
/* 0A (first PDB in list) */
HANDLE16
TopSizePDB
;
/* 0C (unused) */
HTASK16
HeadTDB
;
/* 0E hFirstTask */
HTASK16
CurTDB
;
/* 10 hCurrentTask */
HTASK16
LoadTDB
;
/* 12 (unused) */
HTASK16
LockTDB
;
/* 14 hLockedTask */
}
THHOOK
;
#include <poppack.h>
extern
THHOOK
*
pThhook
;
extern
void
TASK_CreateMainTask
(
void
);
extern
HTASK16
TASK_SpawnTask
(
struct
_NE_MODULE
*
pModule
,
WORD
cmdShow
,
LPCSTR
cmdline
,
BYTE
len
,
HANDLE
*
hThread
);
extern
void
TASK_ExitTask
(
void
);
extern
HTASK16
TASK_GetTaskFromThread
(
DWORD
thread
);
extern
TDB
*
TASK_GetCurrent
(
void
);
extern
void
TASK_InstallTHHook
(
THHOOK
*
pNewThook
);
#endif
/* __WINE_TASK_H */
include/wine/winbase16.h
View file @
436eda30
...
...
@@ -27,6 +27,94 @@
#include <wine/library.h>
#include <pshpack1.h>
/* Process database (i.e. a normal DOS PSP) */
typedef
struct
{
WORD
int20
;
/* 00 int 20h instruction */
WORD
nextParagraph
;
/* 02 Segment of next paragraph */
BYTE
reserved1
;
BYTE
dispatcher
[
5
];
/* 05 Long call to DOS */
FARPROC16
savedint22
;
/* 0a Saved int 22h handler */
FARPROC16
savedint23
;
/* 0e Saved int 23h handler */
FARPROC16
savedint24
;
/* 12 Saved int 24h handler */
WORD
parentPSP
;
/* 16 Selector of parent PSP */
BYTE
fileHandles
[
20
];
/* 18 Open file handles */
HANDLE16
environment
;
/* 2c Selector of environment */
DWORD
saveStack
;
/* 2e SS:SP on last int21 call */
WORD
nbFiles
;
/* 32 Number of file handles */
SEGPTR
fileHandlesPtr
;
/* 34 Pointer to file handle table */
HANDLE16
hFileHandles
;
/* 38 Handle to fileHandlesPtr */
WORD
reserved3
[
17
];
BYTE
fcb1
[
16
];
/* 5c First FCB */
BYTE
fcb2
[
20
];
/* 6c Second FCB */
BYTE
cmdLine
[
128
];
/* 80 Command-line (first byte is len)*/
BYTE
padding
[
16
];
/* Some apps access beyond the end of the cmd line */
}
PDB16
;
/* Task database. See 'Windows Internals' p. 226.
* Note that 16-bit OLE 2 libs like to read it directly
* so we have to keep entry offsets as they are.
*/
typedef
struct
_TDB
{
HTASK16
hNext
;
/* 00 Selector of next TDB */
DWORD
ss_sp
;
/* 02 Stack pointer of task */
WORD
nEvents
;
/* 06 Events for this task */
INT16
priority
;
/* 08 Task priority, -32..15 */
WORD
unused1
;
/* 0a */
HTASK16
hSelf
;
/* 0c Selector of this TDB */
HANDLE16
hPrevInstance
;
/* 0e Previous instance of module */
DWORD
unused2
;
/* 10 */
WORD
ctrlword8087
;
/* 14 80x87 control word */
WORD
flags
;
/* 16 Task flags */
UINT16
error_mode
;
/* 18 Error mode (see SetErrorMode)*/
WORD
version
;
/* 1a Expected Windows version */
HANDLE16
hInstance
;
/* 1c Instance handle for task */
HMODULE16
hModule
;
/* 1e Module handle */
HQUEUE16
hQueue
;
/* 20 Selector of task queue */
HTASK16
hParent
;
/* 22 Selector of TDB of parent */
WORD
signal_flags
;
/* 24 Flags for signal handler */
FARPROC16
sighandler
;
/* 26 Signal handler */
FARPROC16
userhandler
;
/* 2a USER signal handler */
FARPROC16
discardhandler
;
/* 2e Handler for GlobalNotify() */
FARPROC16
int0
;
/* 32 int 0 (divide by 0) handler */
FARPROC16
int2
;
/* 36 int 2 (NMI) handler */
FARPROC16
int4
;
/* 3a int 4 (INTO) handler */
FARPROC16
int6
;
/* 3e int 6 (invalid opc) handler */
FARPROC16
int7
;
/* 42 int 7 (coprocessor) handler */
FARPROC16
int3e
;
/* 46 int 3e (80x87 emu) handler */
FARPROC16
int75
;
/* 4a int 75 (80x87 error) handler */
DWORD
compat_flags
;
/* 4e Compatibility flags */
BYTE
unused4
[
2
];
/* 52 */
struct
_TEB
*
teb
;
/* 54 Pointer to thread database */
BYTE
unused5
[
8
];
/* 58 */
HANDLE16
hPDB
;
/* 60 Selector of PDB (i.e. PSP) */
SEGPTR
dta
;
/* 62 Current DTA */
BYTE
curdrive
;
/* 66 Current drive */
BYTE
curdir
[
65
];
/* 67 Current directory */
WORD
nCmdShow
;
/* a8 cmdShow parameter to WinMain */
HTASK16
hYieldTo
;
/* aa Next task to schedule */
DWORD
dlls_to_init
;
/* ac Ptr to DLLs to initialize */
HANDLE16
hCSAlias
;
/* b0 Code segment for this TDB */
WORD
thunks
[
8
*
4
];
/* b2 Make proc instance thunks */
BYTE
module_name
[
8
];
/* f2 Module name for task */
WORD
magic
;
/* fa TDB signature */
HANDLE
hEvent
;
/* fc scheduler event handle */
PDB16
pdb
;
/* 100 PDB for this task */
}
TDB
;
/* TDB flags */
#define TDBF_WINOLDAP 0x0001
#define TDBF_OS2APP 0x0008
#define TDBF_WIN32 0x0010
/* Windows 3.1 USER signals */
#define USIG16_TERMINATION 0x0020
#define USIG16_DLL_LOAD 0x0040
#define USIG16_DLL_UNLOAD 0x0080
#define USIG16_GPF 0x0666
typedef
struct
_SEGINFO
{
UINT16
offSegment
;
UINT16
cbSegment
;
...
...
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