Release 950522
[wine.git] / tools / build-spec.txt
blob141a06674b22a74f62bd92b780a95c853d044b8e
1 name    NAME
2 id      ID_NUMBER
4 ORDINAL VARTYPE EXPORTNAME (DATA [DATA [DATA [...]]])
6 ORDINAL FUNCTYPE EXPORTNAME([ARGTYPE [ARGTYPE [...]]]) HANDLERNAME
8 ORDINAL stub EXPORTNAME
10 ORDINAL equate EXPORTNAME DATA
12 ORDINAL return EXPORTNAME ARGLENGTH RETVALUE
14 # COMMENT_TEXT
16 --------------------
17 General:
19     "name" and "id" fields are mandatory.  Specific ordinal declarations
20 are optional, but the default handler will print an error message.  Lines
21 whose first character is a '#' will be ignored as comments.
23 Variable ordinals:
25     This type defines data storage at the ordinal specified.  You may
26 store items as bytes, 16-bit words, or 32-bit words.
27     "ORDINAL" is replaced by the ordinal number corresponding to the
28 variable.  "VARTYPE" should be "byte", "word" or "long" for 8, 16, or
29 32 bits respectively.  "EXPORTNAME" will be the name available for
30 dynamic linking.  "DATA" can be a decimal number or a hex number preceeded
31 by "0x".  The following example defines the variable "VariableA" at
32 ordinal 2 and containing 4 bytes:
34         2 byte VariableA -1 0xff 0 0
36 Function ordinals:
38     This type defines a function entry point.  The prototype defined by
39 "EXPORTNAME ([ARGTYPE [ARGTYPE [...]]])" specifies the name available for
40 dynamic linking and the format of the 16-bit stack. "ORDINAL" is replaced
41 by the ordinal number corresponding to the function.  "FUNCTYPE" should be
42 "pascal16" or "pascal" for 16-bit or 32-bit return values.  "ARGTYPE"
43 should be "byte", "word", "long", "ptr" (linear pointer), "s_byte" (signed
44 byte), "s_word" (signed word), "s_long" (signed long), or "segptr"
45 (segmented pointer).  "HANDLERNAME" is the name of the actual function that
46 will process the request in 32-bit mode.
48     This first example defines an entry point for the CreateWindow()
49 call (the ordinal 100 is just an example):
51         100 pascal CreateWindow(ptr ptr long s_word s_word s_word s_word
52                                 word word word ptr)
53                    WIN_CreateWindow
55    This second example defines an entry point for the GetFocus()
56 call (the ordinal 100 is just an example):
58         100 pascal GetFocus() WIN_GetFocus()
60 Stub ordinals:
62     This type defines a stub function. It makes the name and ordinal
63 available for dynamic linking, but will terminate execution with an
64 error message if the function is ever called.
66 Equate ordinals:
68     This type defines an ordinal as an absolute value.
69 "ORDINAL" is replaced by the ordinal number corresponding to the
70 variable.  "EXPORTNAME" will be the name available for dynamic linking.  
71 "DATA" can be a decimal number or a hex number preceeded by "0x".
73 Return ordinals:
75     This type defines a function entry point whose handler should do
76 nothing but return a value.
77     "ORDINAL" is replaced by the ordinal number corresponding to the
78 variable.  ARGLENGTH is the number of bytes that need to be removed
79 from the stack before returning to the caller.  RETVALUE is the
80 return value which will be passed back to the caller.