Release 0.6
[wine] / include / dlls.h
1 /* $Id: dlls.h,v 1.2 1993/07/04 04:04:21 root Exp root $
2  */
3 /*
4  * Copyright  Robert J. Amstadt, 1993
5  */
6
7 #ifndef DLLS_H
8 #define DLLS_H
9
10 typedef struct dll_arg_relocation_s
11 {
12     unsigned short dst_arg;     /* Offset to argument on stack          */
13     unsigned char src_type;     /* Argument type                        */
14 } DLL_ARG;
15
16 #define DLL_ARGTYPE_SIGNEDWORD  0
17 #define DLL_ARGTYPE_WORD        1
18 #define DLL_ARGTYPE_LONG        2
19 #define DLL_ARGTYPE_FARPTR      3
20 #define DLL_MAX_ARGS            16
21
22 #define DLL_HANDLERTYPE_PASCAL  16
23 #define DLL_HANDLERTYPE_C       17
24
25 struct dll_table_entry_s
26 {
27     /*
28      * Relocation data
29      */
30     unsigned int selector;      /* Selector to access this entry point    */
31     void *address;              /* Offset in segment of entry point       */
32
33     /*
34      * 16->32 bit interface data
35      */
36     char *export_name;
37     void *handler;              /* Address of function to process request */
38     int handler_type;           /* C or PASCAL calling convention         */
39 #ifdef WINESTAT
40     int used;                   /* Number of times this function referenced */
41 #endif
42     int n_args;                 /* Number of arguments passed to function */
43     DLL_ARG args[DLL_MAX_ARGS]; /* Argument conversion data               */
44 };
45
46 struct dll_name_table_entry_s
47 {
48     char *dll_name;
49     struct dll_table_entry_s *dll_table;
50     int dll_table_length;
51     int dll_number;
52 };
53
54 extern struct dll_table_entry_s KERNEL_table[];
55 extern struct dll_table_entry_s USER_table[];
56 extern struct dll_table_entry_s GDI_table[];
57 extern struct dll_table_entry_s UNIXLIB_table[];
58 extern struct dll_table_entry_s WIN87EM_table[];
59 extern struct dll_table_entry_s SHELL_table[];
60 extern struct dll_table_entry_s SOUND_table[];
61 extern struct dll_table_entry_s KEYBOARD_table[];
62
63 #endif /* DLLS_H */