| /* $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 |
| |
| typedef struct dll_arg_relocation_s |
| { |
| unsigned short dst_arg; /* Offset to argument on stack */ |
| unsigned char src_type; /* Argument type */ |
| } DLL_ARG; |
| |
| #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 */ |
| int handler_type; /* C or PASCAL calling convention */ |
| #ifdef WINESTAT |
| int used; /* Number of times this function referenced */ |
| #endif |
| int n_args; /* Number of arguments passed to function */ |
| DLL_ARG args[DLL_MAX_ARGS]; /* Argument conversion data */ |
| }; |
| |
| 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 SHELL_table[]; |
| extern struct dll_table_entry_s SOUND_table[]; |
| extern struct dll_table_entry_s KEYBOARD_table[]; |
| |
| #endif /* DLLS_H */ |