Moved a few definitions used in only one source file out of module.h.
This commit is contained in:
parent
8fb98a41e0
commit
d3fb25cd0f
|
@ -225,7 +225,7 @@ NE_MODULE *NE_GetPtr( HMODULE16 hModule )
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* NE_RegisterModule
|
* NE_RegisterModule
|
||||||
*/
|
*/
|
||||||
void NE_RegisterModule( NE_MODULE *pModule )
|
static void NE_RegisterModule( NE_MODULE *pModule )
|
||||||
{
|
{
|
||||||
pModule->next = hFirstModule;
|
pModule->next = hFirstModule;
|
||||||
hFirstModule = pModule->self;
|
hFirstModule = pModule->self;
|
||||||
|
@ -390,7 +390,7 @@ void NE_WalkModules(void)
|
||||||
*
|
*
|
||||||
* Fill in 'resloader' fields in the resource table.
|
* Fill in 'resloader' fields in the resource table.
|
||||||
*/
|
*/
|
||||||
void NE_InitResourceHandler( NE_MODULE *pModule )
|
static void NE_InitResourceHandler( NE_MODULE *pModule )
|
||||||
{
|
{
|
||||||
static FARPROC16 proc;
|
static FARPROC16 proc;
|
||||||
|
|
||||||
|
@ -1577,7 +1577,7 @@ static BOOL16 NE_FreeModule( HMODULE16 hModule, BOOL call_wep )
|
||||||
|
|
||||||
/* Free the referenced modules */
|
/* Free the referenced modules */
|
||||||
|
|
||||||
pModRef = (HMODULE16*)NE_MODULE_TABLE( pModule );
|
pModRef = (HMODULE16*)((char *)pModule + pModule->modref_table);
|
||||||
for (i = 0; i < pModule->modref_count; i++, pModRef++)
|
for (i = 0; i < pModule->modref_count; i++, pModRef++)
|
||||||
{
|
{
|
||||||
NE_FreeModule( *pModRef, call_wep );
|
NE_FreeModule( *pModRef, call_wep );
|
||||||
|
|
|
@ -79,6 +79,22 @@ struct relocation_entry_s
|
||||||
#define NE_RELTYPE_OSFIXUP 3
|
#define NE_RELTYPE_OSFIXUP 3
|
||||||
#define NE_RELFLAG_ADDITIVE 4
|
#define NE_RELFLAG_ADDITIVE 4
|
||||||
|
|
||||||
|
/* Self-loading modules contain this structure in their first segment */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD version; /* Must be "A0" (0x3041) */
|
||||||
|
WORD reserved;
|
||||||
|
FARPROC16 BootApp; /* startup procedure */
|
||||||
|
FARPROC16 LoadAppSeg; /* procedure to load a segment */
|
||||||
|
FARPROC16 reserved2;
|
||||||
|
FARPROC16 MyAlloc; /* memory allocation procedure,
|
||||||
|
* wine must write this field */
|
||||||
|
FARPROC16 EntryAddrProc;
|
||||||
|
FARPROC16 ExitProc; /* exit procedure */
|
||||||
|
WORD reserved3[4];
|
||||||
|
FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */
|
||||||
|
} SELFLOADHEADER;
|
||||||
|
|
||||||
#define SEL(x) ((x)|1)
|
#define SEL(x) ((x)|1)
|
||||||
|
|
||||||
static void NE_FixupSegmentPrologs(NE_MODULE *pModule, WORD segnum);
|
static void NE_FixupSegmentPrologs(NE_MODULE *pModule, WORD segnum);
|
||||||
|
@ -108,7 +124,7 @@ static const char *NE_GetRelocAddrName( BYTE addr_type, int additive )
|
||||||
BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
|
BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
|
||||||
{
|
{
|
||||||
SEGTABLEENTRY *pSegTable, *pSeg;
|
SEGTABLEENTRY *pSegTable, *pSeg;
|
||||||
WORD *pModuleTable;
|
HMODULE16 *pModuleTable;
|
||||||
WORD count, i, offset, next_offset;
|
WORD count, i, offset, next_offset;
|
||||||
HMODULE16 module;
|
HMODULE16 module;
|
||||||
FARPROC16 address = 0;
|
FARPROC16 address = 0;
|
||||||
|
@ -139,7 +155,7 @@ BOOL NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
|
||||||
|
|
||||||
if (!pSeg->filepos) return TRUE; /* No file image, just return */
|
if (!pSeg->filepos) return TRUE; /* No file image, just return */
|
||||||
|
|
||||||
pModuleTable = NE_MODULE_TABLE( pModule );
|
pModuleTable = (HMODULE16 *)((char *)pModule + pModule->modref_table);
|
||||||
|
|
||||||
hf = NE_OpenFile( pModule );
|
hf = NE_OpenFile( pModule );
|
||||||
TRACE_(module)("Loading segment %d, hSeg=%04x, flags=%04x\n",
|
TRACE_(module)("Loading segment %d, hSeg=%04x, flags=%04x\n",
|
||||||
|
@ -861,7 +877,7 @@ static void free_init_list( struct ne_init_list *list )
|
||||||
static void fill_init_list( struct ne_init_list *list, HMODULE16 hModule )
|
static void fill_init_list( struct ne_init_list *list, HMODULE16 hModule )
|
||||||
{
|
{
|
||||||
NE_MODULE *pModule;
|
NE_MODULE *pModule;
|
||||||
WORD *pModRef;
|
HMODULE16 *pModRef;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!(pModule = NE_GetPtr( hModule ))) return;
|
if (!(pModule = NE_GetPtr( hModule ))) return;
|
||||||
|
@ -881,10 +897,9 @@ static void fill_init_list( struct ne_init_list *list, HMODULE16 hModule )
|
||||||
pModule->misc_flags |= 0x80;
|
pModule->misc_flags |= 0x80;
|
||||||
|
|
||||||
/* Recursively attach all DLLs this one depends on */
|
/* Recursively attach all DLLs this one depends on */
|
||||||
pModRef = NE_MODULE_TABLE( pModule );
|
pModRef = (HMODULE16 *)((char *)pModule + pModule->modref_table);
|
||||||
for ( i = 0; i < pModule->modref_count; i++ )
|
for ( i = 0; i < pModule->modref_count; i++ )
|
||||||
if ( pModRef[i] )
|
if ( pModRef[i] ) fill_init_list( list, pModRef[i] );
|
||||||
fill_init_list( list, (HMODULE16)pModRef[i] );
|
|
||||||
|
|
||||||
/* Add current module */
|
/* Add current module */
|
||||||
add_to_init_list( list, pModule );
|
add_to_init_list( list, pModule );
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "heap.h"
|
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "kernel_private.h"
|
#include "kernel_private.h"
|
||||||
|
@ -46,6 +45,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(process);
|
||||||
WINE_DECLARE_DEBUG_CHANNEL(server);
|
WINE_DECLARE_DEBUG_CHANNEL(server);
|
||||||
WINE_DECLARE_DEBUG_CHANNEL(relay);
|
WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
LPSTR lpEnvAddress;
|
||||||
|
LPSTR lpCmdLine;
|
||||||
|
LPSTR lpCmdShow;
|
||||||
|
DWORD dwReserved;
|
||||||
|
} LOADPARMS32;
|
||||||
|
|
||||||
static UINT process_error_mode;
|
static UINT process_error_mode;
|
||||||
|
|
||||||
static HANDLE main_exe_file;
|
static HANDLE main_exe_file;
|
||||||
|
@ -1746,7 +1753,7 @@ UINT WINAPI WinExec( LPCSTR lpCmdLine, UINT nCmdShow )
|
||||||
*/
|
*/
|
||||||
HINSTANCE WINAPI LoadModule( LPCSTR name, LPVOID paramBlock )
|
HINSTANCE WINAPI LoadModule( LPCSTR name, LPVOID paramBlock )
|
||||||
{
|
{
|
||||||
LOADPARAMS *params = (LOADPARAMS *)paramBlock;
|
LOADPARMS32 *params = paramBlock;
|
||||||
PROCESS_INFORMATION info;
|
PROCESS_INFORMATION info;
|
||||||
STARTUPINFOA startup;
|
STARTUPINFOA startup;
|
||||||
HINSTANCE hInstance;
|
HINSTANCE hInstance;
|
||||||
|
@ -1775,7 +1782,7 @@ HINSTANCE WINAPI LoadModule( LPCSTR name, LPVOID paramBlock )
|
||||||
if (params->lpCmdShow)
|
if (params->lpCmdShow)
|
||||||
{
|
{
|
||||||
startup.dwFlags = STARTF_USESHOWWINDOW;
|
startup.dwFlags = STARTF_USESHOWWINDOW;
|
||||||
startup.wShowWindow = params->lpCmdShow[1];
|
startup.wShowWindow = ((WORD *)params->lpCmdShow)[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CreateProcessA( filename, cmdline, NULL, NULL, FALSE, 0,
|
if (CreateProcessA( filename, cmdline, NULL, NULL, FALSE, 0,
|
||||||
|
|
|
@ -98,44 +98,11 @@ typedef struct
|
||||||
/* of segment in memory */
|
/* of segment in memory */
|
||||||
} SEGTABLEENTRY;
|
} SEGTABLEENTRY;
|
||||||
|
|
||||||
|
|
||||||
/* Self-loading modules contain this structure in their first segment */
|
|
||||||
|
|
||||||
#include <pshpack1.h>
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
WORD version; /* Must be "A0" (0x3041) */
|
|
||||||
WORD reserved;
|
|
||||||
FARPROC16 BootApp; /* startup procedure */
|
|
||||||
FARPROC16 LoadAppSeg; /* procedure to load a segment */
|
|
||||||
FARPROC16 reserved2;
|
|
||||||
FARPROC16 MyAlloc; /* memory allocation procedure,
|
|
||||||
* wine must write this field */
|
|
||||||
FARPROC16 EntryAddrProc;
|
|
||||||
FARPROC16 ExitProc; /* exit procedure */
|
|
||||||
WORD reserved3[4];
|
|
||||||
FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */
|
|
||||||
} SELFLOADHEADER;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
LPSTR lpEnvAddress;
|
|
||||||
LPSTR lpCmdLine;
|
|
||||||
UINT16 *lpCmdShow;
|
|
||||||
DWORD dwReserved;
|
|
||||||
} LOADPARAMS;
|
|
||||||
|
|
||||||
#include <poppack.h>
|
|
||||||
|
|
||||||
/* Resource types */
|
/* Resource types */
|
||||||
|
|
||||||
#define NE_SEG_TABLE(pModule) \
|
#define NE_SEG_TABLE(pModule) \
|
||||||
((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table))
|
((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table))
|
||||||
|
|
||||||
#define NE_MODULE_TABLE(pModule) \
|
|
||||||
((WORD *)((char *)(pModule) + (pModule)->modref_table))
|
|
||||||
|
|
||||||
#define NE_MODULE_NAME(pModule) \
|
#define NE_MODULE_NAME(pModule) \
|
||||||
(((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName)
|
(((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName)
|
||||||
|
|
||||||
|
@ -164,15 +131,9 @@ enum binary_type
|
||||||
/* module.c */
|
/* module.c */
|
||||||
extern NTSTATUS MODULE_DllThreadAttach( LPVOID lpReserved );
|
extern NTSTATUS MODULE_DllThreadAttach( LPVOID lpReserved );
|
||||||
extern enum binary_type MODULE_GetBinaryType( HANDLE hfile );
|
extern enum binary_type MODULE_GetBinaryType( HANDLE hfile );
|
||||||
extern FARPROC16 WINAPI WIN32_GetProcAddress16( HMODULE hmodule, LPCSTR name );
|
|
||||||
extern void MODULE_WalkModref( DWORD id );
|
|
||||||
|
|
||||||
/* loader/ne/module.c */
|
/* loader/ne/module.c */
|
||||||
extern NE_MODULE *NE_GetPtr( HMODULE16 hModule );
|
extern NE_MODULE *NE_GetPtr( HMODULE16 hModule );
|
||||||
extern void NE_DumpModule( HMODULE16 hModule );
|
|
||||||
extern void NE_WalkModules(void);
|
|
||||||
extern void NE_InitResourceHandler( NE_MODULE *pModule );
|
|
||||||
extern void NE_RegisterModule( NE_MODULE *pModule );
|
|
||||||
extern WORD NE_GetOrdinal( HMODULE16 hModule, const char *name );
|
extern WORD NE_GetOrdinal( HMODULE16 hModule, const char *name );
|
||||||
extern FARPROC16 WINAPI NE_GetEntryPoint( HMODULE16 hModule, WORD ordinal );
|
extern FARPROC16 WINAPI NE_GetEntryPoint( HMODULE16 hModule, WORD ordinal );
|
||||||
extern FARPROC16 NE_GetEntryPointEx( HMODULE16 hModule, WORD ordinal, BOOL16 snoop );
|
extern FARPROC16 NE_GetEntryPointEx( HMODULE16 hModule, WORD ordinal, BOOL16 snoop );
|
||||||
|
@ -193,10 +154,6 @@ extern void NE_InitializeDLLs( HMODULE16 hModule );
|
||||||
extern void NE_DllProcessAttach( HMODULE16 hModule );
|
extern void NE_DllProcessAttach( HMODULE16 hModule );
|
||||||
extern void NE_CallUserSignalProc( HMODULE16 hModule, UINT16 code );
|
extern void NE_CallUserSignalProc( HMODULE16 hModule, UINT16 code );
|
||||||
|
|
||||||
/* loader/pe_resource.c */
|
|
||||||
extern HRSRC PE_FindResourceW(HMODULE,LPCWSTR,LPCWSTR);
|
|
||||||
extern HRSRC PE_FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD);
|
|
||||||
|
|
||||||
/* loader/loadorder.c */
|
/* loader/loadorder.c */
|
||||||
extern void MODULE_GetLoadOrderW( enum loadorder_type plo[], const WCHAR *app_name,
|
extern void MODULE_GetLoadOrderW( enum loadorder_type plo[], const WCHAR *app_name,
|
||||||
const WCHAR *path, BOOL win32 );
|
const WCHAR *path, BOOL win32 );
|
||||||
|
|
Loading…
Reference in New Issue