Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
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
Hide 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