1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00
wine/include/dlls.h
Alexandre Julliard b67b1dcc26 Release 950216
Thu Feb 16 18:57:31 1995  Alexandre Julliard  (julliard@sunsite.unc.edu)

	* [if1632/call.S]
	Only save the lower 16-bits of SP and BP.

	* [if1632/callback.c]
	When calling to 16-bit code, restore DS from its previous value on
	entry to the 32-bit code, instead of from the code segment owner.

	* [if1632/relay.c] [include/stackframe.h]
	Use a structure to represent the 16-bit stack frame layout
	instead of hard-coded offsets.
	
	* [rc/Imakefile]
	Use y.tab.c for bison output file for compatibility with yacc.

	* [tools/build.c]
	Small optimization for calls to 32-bit code.

Sun Feb 12 03:19:47 1995  Michael Veksler (s1678223@t2.technion.ac.il)

	* [tools/build.c]
	Fixed bug (inflicted by previous change) - SEGV on ZMAGIC file format.

Sun Feb 11 20:00:00 1995  Göran Thyni  (goran@norrsken.bildbasen.se)

	* [debugger/dbg.y]
	Remove unnecessary sym-table loading when stopped in 16-bit mode.

	* [include/segmem.h] [loader/selector.c]
        Added dynamic alloction of selectors.
        Fixed some problems with large programs SIGSEGV-ing while
        running out of selectors.

	* [include/segmem.h] [loader/selector.c] [if1632/callback.c] 
          [memory/global.c] [memory/heap.c] [memory/linear.c]
	Use __AHSHIFT and __AHINCR instead of 3 and 8.

Mon Feb  6 18:07:38 1995  Cameron Heide  (heide@ee.ualberta.ca)

        * [misc/dos_fs.c]
        Better relative path handling when converting filenames between
        dos and unix, allowing '.' to be used in the Windows path.
        Startup working dir is now based on current working dir.

Sat Feb  4 21:21:13 1995  Michael Veksler (s1678223@t2.technion.ac.il)

	* [if1632/relay.c] [include/dlls.h] [tools/build.c]
	Squeezed data structure that references internal dll's (mostly
	"struct dll_table_entry_s"). Caused 20% reduction in executable
	code size.

Fri Feb  3 18:53:15 1995  Martin v. Loewis  (loewis@marie)

	* [Imakefile]
	make wine.sym only when making emulator

	* [misc/file.c]
	OpenFile(): report as not implemented for WINELIB

	* [misc/winsock.c]
	Fix CONVERT_HOSTENT and friends for use with WINELIB

	* [rc/Imakefile][rc/rc.y][rc/parser.c]
	Rename rc.y to parser.y
	Use flex and bison on Sun

	* [toolkit/sup.c]
	CallWindowProc: fix parameter type

	* [windows/event.c]
	Commented #ifdef sparc
1995-02-16 16:47:09 +00:00

151 lines
4.1 KiB
C

/* $Id: dlls.h,v 1.2 1993/07/04 04:04:21 root Exp root $
*/
/*
* Copyright Robert J. Amstadt, 1993
*/
#ifndef DLLS_H
#define DLLS_H
#define MAX_NAME_LENGTH 64
typedef struct resource_name_table
{
struct resource_name_table *next;
unsigned short type_ord;
unsigned short id_ord;
char id[MAX_NAME_LENGTH];
} RESNAMTAB;
struct ne_data {
struct ne_header_s *ne_header;
struct ne_segment_table_entry_s *seg_table;
struct segment_descriptor_s *selector_table;
char *lookup_table;
char *nrname_table;
char *rname_table;
RESNAMTAB *resnamtab;
};
struct pe_data {
struct pe_header_s *pe_header;
struct pe_segment_table *pe_seg;
struct PE_Import_Directory *pe_import;
struct PE_Export_Directory *pe_export;
struct PE_Resource_Directory *pe_resource;
int resource_offset; /* offset to resource typedirectory in file */
};
struct w_files
{
struct w_files * next;
char * name; /* Name, as it appears in the windows binaries */
char * filename; /* Actual name of the unix file that satisfies this */
int fd;
unsigned short hinstance;
int initialised;
struct mz_header_s *mz_header;
struct ne_data *ne;
struct pe_data *pe;
};
extern struct w_files *wine_files;
#define DLL 0
#define EXE 1
#define DLL_ARGTYPE_SIGNEDWORD 0
#define DLL_ARGTYPE_WORD 1
#define DLL_ARGTYPE_LONG 2
#define DLL_ARGTYPE_FARPTR 3
#define DLL_MAX_ARGS 16
#define DLL_HANDLERTYPE_PASCAL 16
#define DLL_HANDLERTYPE_C 17
struct dll_table_entry_s
{
/*
* Relocation data
*/
unsigned int selector; /* Selector to access this entry point */
void *address; /* Offset in segment of entry point */
/*
* 16->32 bit interface data
*/
char *export_name;
void *handler; /* Address of function to process request */
char handler_type; /* C or PASCAL calling convention */
char n_args; /* Number of arguments passed to function */
short conv_reference ; /* reference to Argument conversion data */
#ifdef WINESTAT
int used; /* Number of times this function referenced */
#endif
};
struct dll_name_table_entry_s
{
char *dll_name;
struct dll_table_entry_s *dll_table;
int dll_table_length;
int dll_number;
};
extern struct dll_table_entry_s KERNEL_table[];
extern struct dll_table_entry_s USER_table[];
extern struct dll_table_entry_s GDI_table[];
extern struct dll_table_entry_s UNIXLIB_table[];
extern struct dll_table_entry_s WIN87EM_table[];
extern struct dll_table_entry_s MMSYSTEM_table[];
extern struct dll_table_entry_s SHELL_table[];
extern struct dll_table_entry_s SOUND_table[];
extern struct dll_table_entry_s KEYBOARD_table[];
extern struct dll_table_entry_s WINSOCK_table[];
extern struct dll_table_entry_s STRESS_table[];
extern struct dll_table_entry_s SYSTEM_table[];
extern struct dll_table_entry_s TOOLHELP_table[];
extern struct dll_table_entry_s MOUSE_table[];
extern struct dll_table_entry_s COMMDLG_table[];
extern unsigned short KERNEL_offsets[];
extern unsigned short USER_offsets[];
extern unsigned short GDI_offsets[];
extern unsigned short UNIXLIB_offsets[];
extern unsigned short WIN87EM_offsets[];
extern unsigned short MMSYSTEM_offsets[];
extern unsigned short SHELL_offsets[];
extern unsigned short SOUND_offsets[];
extern unsigned short KEYBOARD_offsets[];
extern unsigned short WINSOCK_offsets[];
extern unsigned short STRESS_offsets[];
extern unsigned short SYSTEM_offsets[];
extern unsigned short TOOLHELP_offsets[];
extern unsigned short MOUSE_offsets[];
extern unsigned short COMMDLG_offsets[];
extern unsigned char KERNEL_types[];
extern unsigned char USER_types[];
extern unsigned char GDI_types[];
extern unsigned char UNIXLIB_types[];
extern unsigned char WIN87EM_types[];
extern unsigned char MMSYSTEM_types[];
extern unsigned char SHELL_types[];
extern unsigned char SOUND_types[];
extern unsigned char KEYBOARD_types[];
extern unsigned char WINSOCK_types[];
extern unsigned char STRESS_types[];
extern unsigned char SYSTEM_types[];
extern unsigned char TOOLHELP_types[];
extern unsigned char MOUSE_types[];
extern unsigned char COMMDLG_types[];
#define N_BUILTINS 15
#endif /* DLLS_H */