mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 02:10:07 +00:00
- update dbghelp.h and cvconst.h from wine
- update mscvpdb.h, winbase16.h and windef16.h wine headers - create wine/winbase.h containing SYSLEVEL struct - add regex.h to include/wine svn path=/trunk/; revision=31337
This commit is contained in:
parent
2ba19fb650
commit
556b0edec8
|
@ -15,7 +15,7 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
/* information in this file is highly derivated from MSDN DIA information pages */
|
||||
|
@ -121,7 +121,7 @@ enum DataKind
|
|||
/* values for registers (on different CPUs) */
|
||||
enum CV_HREG_e
|
||||
{
|
||||
/* those values are common to all supported CPUs (and CPU independant) */
|
||||
/* those values are common to all supported CPUs (and CPU independent) */
|
||||
CV_ALLREG_ERR = 30000,
|
||||
CV_ALLREG_TEB = 30001,
|
||||
CV_ALLREG_TIMER = 30002,
|
||||
|
@ -420,6 +420,114 @@ enum CV_HREG_e
|
|||
CV_M32R_ACHI = 32,
|
||||
CV_M32R_ACLO = 33,
|
||||
CV_M32R_PC = 34,
|
||||
|
||||
/* AMD/Intel x86_64 CPU */
|
||||
CV_AMD64_NONE = CV_REG_NONE,
|
||||
CV_AMD64_AL = CV_REG_AL,
|
||||
CV_AMD64_CL = CV_REG_CL,
|
||||
CV_AMD64_DL = CV_REG_DL,
|
||||
CV_AMD64_BL = CV_REG_BL,
|
||||
CV_AMD64_AH = CV_REG_AH,
|
||||
CV_AMD64_CH = CV_REG_CH,
|
||||
CV_AMD64_DH = CV_REG_DH,
|
||||
CV_AMD64_BH = CV_REG_BH,
|
||||
CV_AMD64_AX = CV_REG_AX,
|
||||
CV_AMD64_CX = CV_REG_CX,
|
||||
CV_AMD64_DX = CV_REG_DX,
|
||||
CV_AMD64_BX = CV_REG_BX,
|
||||
CV_AMD64_SP = CV_REG_SP,
|
||||
CV_AMD64_BP = CV_REG_BP,
|
||||
CV_AMD64_SI = CV_REG_SI,
|
||||
CV_AMD64_DI = CV_REG_DI,
|
||||
CV_AMD64_EAX = CV_REG_EAX,
|
||||
CV_AMD64_ECX = CV_REG_ECX,
|
||||
CV_AMD64_EDX = CV_REG_EDX,
|
||||
CV_AMD64_EBX = CV_REG_EBX,
|
||||
CV_AMD64_ESP = CV_REG_ESP,
|
||||
CV_AMD64_EBP = CV_REG_EBP,
|
||||
CV_AMD64_ESI = CV_REG_ESI,
|
||||
CV_AMD64_EDI = CV_REG_EDI,
|
||||
CV_AMD64_ES = CV_REG_ES,
|
||||
CV_AMD64_CS = CV_REG_CS,
|
||||
CV_AMD64_SS = CV_REG_SS,
|
||||
CV_AMD64_DS = CV_REG_DS,
|
||||
CV_AMD64_FS = CV_REG_FS,
|
||||
CV_AMD64_GS = CV_REG_GS,
|
||||
CV_AMD64_FLAGS = CV_REG_FLAGS,
|
||||
CV_AMD64_RIP = CV_REG_EIP,
|
||||
CV_AMD64_EFLAGS = CV_REG_EFLAGS,
|
||||
|
||||
/* <pcode> */
|
||||
CV_AMD64_TEMP = CV_REG_TEMP,
|
||||
CV_AMD64_TEMPH = CV_REG_TEMPH,
|
||||
CV_AMD64_QUOTE = CV_REG_QUOTE,
|
||||
CV_AMD64_PCDR3 = CV_REG_PCDR3, /* this includes PCDR4 to PCDR7 */
|
||||
CV_AMD64_CR0 = CV_REG_CR0, /* this includes CR1 to CR4 */
|
||||
CV_AMD64_DR0 = CV_REG_DR0, /* this includes DR1 to DR7 */
|
||||
/* </pcode> */
|
||||
|
||||
CV_AMD64_GDTR = CV_REG_GDTR,
|
||||
CV_AMD64_GDTL = CV_REG_GDTL,
|
||||
CV_AMD64_IDTR = CV_REG_IDTR,
|
||||
CV_AMD64_IDTL = CV_REG_IDTL,
|
||||
CV_AMD64_LDTR = CV_REG_LDTR,
|
||||
CV_AMD64_TR = CV_REG_TR,
|
||||
|
||||
CV_AMD64_PSEUDO1 = CV_REG_PSEUDO1, /* this includes Pseudo02 to Pseuso09 */
|
||||
CV_AMD64_ST0 = CV_REG_ST0, /* this includes ST1 to ST7 */
|
||||
CV_AMD64_CTRL = CV_REG_CTRL,
|
||||
CV_AMD64_STAT = CV_REG_STAT,
|
||||
CV_AMD64_TAG = CV_REG_TAG,
|
||||
CV_AMD64_FPIP = CV_REG_FPIP,
|
||||
CV_AMD64_FPCS = CV_REG_FPCS,
|
||||
CV_AMD64_FPDO = CV_REG_FPDO,
|
||||
CV_AMD64_FPDS = CV_REG_FPDS,
|
||||
CV_AMD64_ISEM = CV_REG_ISEM,
|
||||
CV_AMD64_FPEIP = CV_REG_FPEIP,
|
||||
CV_AMD64_FPEDO = CV_REG_FPEDO,
|
||||
CV_AMD64_MM0 = CV_REG_MM0, /* this includes MM1 to MM7 */
|
||||
CV_AMD64_XMM0 = CV_REG_XMM0, /* this includes XMM1 to XMM7 */
|
||||
CV_AMD64_XMM00 = CV_REG_XMM00,
|
||||
CV_AMD64_XMM0L = CV_REG_XMM0L, /* this includes XMM1L to XMM7L */
|
||||
CV_AMD64_XMM0H = CV_REG_XMM0H, /* this includes XMM1H to XMM7H */
|
||||
CV_AMD64_MXCSR = CV_REG_MXCSR,
|
||||
CV_AMD64_EDXEAX = CV_REG_EDXEAX,
|
||||
CV_AMD64_EMM0L = CV_REG_EMM0L,
|
||||
CV_AMD64_EMM0H = CV_REG_EMM0H,
|
||||
CV_AMD64_MM00 = CV_REG_MM00,
|
||||
CV_AMD64_MM01 = CV_REG_MM01,
|
||||
CV_AMD64_MM10 = CV_REG_MM10,
|
||||
CV_AMD64_MM11 = CV_REG_MM11,
|
||||
CV_AMD64_MM20 = CV_REG_MM20,
|
||||
CV_AMD64_MM21 = CV_REG_MM21,
|
||||
CV_AMD64_MM30 = CV_REG_MM30,
|
||||
CV_AMD64_MM31 = CV_REG_MM31,
|
||||
CV_AMD64_MM40 = CV_REG_MM40,
|
||||
CV_AMD64_MM41 = CV_REG_MM41,
|
||||
CV_AMD64_MM50 = CV_REG_MM50,
|
||||
CV_AMD64_MM51 = CV_REG_MM51,
|
||||
CV_AMD64_MM60 = CV_REG_MM60,
|
||||
CV_AMD64_MM61 = CV_REG_MM61,
|
||||
CV_AMD64_MM70 = CV_REG_MM70,
|
||||
CV_AMD64_MM71 = CV_REG_MM71,
|
||||
|
||||
CV_AMD64_RAX = 328,
|
||||
CV_AMD64_RBX = 329,
|
||||
CV_AMD64_RCX = 330,
|
||||
CV_AMD64_RDX = 331,
|
||||
CV_AMD64_RSI = 332,
|
||||
CV_AMD64_RDI = 333,
|
||||
CV_AMD64_RBP = 334,
|
||||
CV_AMD64_RSP = 335,
|
||||
|
||||
CV_AMD64_R8 = 336,
|
||||
CV_AMD64_R9 = 337,
|
||||
CV_AMD64_R10 = 338,
|
||||
CV_AMD64_R11 = 339,
|
||||
CV_AMD64_R12 = 340,
|
||||
CV_AMD64_R13 = 341,
|
||||
CV_AMD64_R14 = 342,
|
||||
CV_AMD64_R15 = 343,
|
||||
} CV_HREG_e;
|
||||
|
||||
typedef enum
|
||||
|
@ -430,3 +538,24 @@ typedef enum
|
|||
THUNK_ORDINAL_PCODE,
|
||||
THUNK_ORDINAL_LOAD
|
||||
} THUNK_ORDINAL;
|
||||
|
||||
typedef enum CV_call_e
|
||||
{
|
||||
CV_CALL_NEAR_C,
|
||||
CV_CALL_FAR_C,
|
||||
CV_CALL_NEAR_PASCAL,
|
||||
CV_CALL_FAR_PASCAL,
|
||||
CV_CALL_NEAR_FAST,
|
||||
CV_CALL_FAR_FAST,
|
||||
CV_CALL_SKIPPED,
|
||||
CV_CALL_NEAR_STD,
|
||||
CV_CALL_FAR_STD,
|
||||
CV_CALL_NEAR_SYS,
|
||||
CV_CALL_FAR_SYS,
|
||||
CV_CALL_THISCALL,
|
||||
CV_CALL_MIPSCALL,
|
||||
CV_CALL_GENERIC,
|
||||
CV_CALL_ALPHACALL,
|
||||
CV_CALL_PPCCALL,
|
||||
CV_CALL_RESERVED,
|
||||
} CV_call_e;
|
||||
|
|
File diff suppressed because it is too large
Load diff
1714
reactos/include/reactos/wine/mscvpdb.h
Normal file
1714
reactos/include/reactos/wine/mscvpdb.h
Normal file
File diff suppressed because it is too large
Load diff
572
reactos/include/reactos/wine/regex.h
Normal file
572
reactos/include/reactos/wine/regex.h
Normal file
|
@ -0,0 +1,572 @@
|
|||
/* Definitions for data structures and routines for the regular
|
||||
expression library, version 0.12.
|
||||
Copyright (C) 1985,89,90,91,92,93,95,96,97,98 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU C Library. Its master source is NOT part of
|
||||
the C library, however. The master source lives in /gd/gnu/lib.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _REGEX_H
|
||||
#define _REGEX_H 1
|
||||
|
||||
/* Allow the use in C++ code. */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* POSIX says that <sys/types.h> must be included (by the caller) before
|
||||
<regex.h>. */
|
||||
|
||||
#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
|
||||
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
|
||||
should be there. */
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
/* The following two types have to be signed and unsigned integer type
|
||||
wide enough to hold a value of a pointer. For most ANSI compilers
|
||||
ptrdiff_t and size_t should be likely OK. Still size of these two
|
||||
types is 2 for Microsoft C. Ugh... */
|
||||
typedef long int s_reg_t;
|
||||
typedef unsigned long int active_reg_t;
|
||||
|
||||
/* The following bits are used to determine the regexp syntax we
|
||||
recognize. The set/not-set meanings are chosen so that Emacs syntax
|
||||
remains the value 0. The bits are given in alphabetical order, and
|
||||
the definitions shifted by one from the previous bit; thus, when we
|
||||
add or remove a bit, only one other definition need change. */
|
||||
typedef unsigned long int reg_syntax_t;
|
||||
|
||||
/* If this bit is not set, then \ inside a bracket expression is literal.
|
||||
If set, then such a \ quotes the following character. */
|
||||
#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
|
||||
|
||||
/* If this bit is not set, then + and ? are operators, and \+ and \? are
|
||||
literals.
|
||||
If set, then \+ and \? are operators and + and ? are literals. */
|
||||
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
|
||||
|
||||
/* If this bit is set, then character classes are supported. They are:
|
||||
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
|
||||
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
|
||||
If not set, then character classes are not supported. */
|
||||
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
|
||||
|
||||
/* If this bit is set, then ^ and $ are always anchors (outside bracket
|
||||
expressions, of course).
|
||||
If this bit is not set, then it depends:
|
||||
^ is an anchor if it is at the beginning of a regular
|
||||
expression or after an open-group or an alternation operator;
|
||||
$ is an anchor if it is at the end of a regular expression, or
|
||||
before a close-group or an alternation operator.
|
||||
|
||||
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
|
||||
POSIX draft 11.2 says that * etc. in leading positions is undefined.
|
||||
We already implemented a previous draft which made those constructs
|
||||
invalid, though, so we haven't changed the code back. */
|
||||
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
|
||||
|
||||
/* If this bit is set, then special characters are always special
|
||||
regardless of where they are in the pattern.
|
||||
If this bit is not set, then special characters are special only in
|
||||
some contexts; otherwise they are ordinary. Specifically,
|
||||
* + ? and intervals are only special when not after the beginning,
|
||||
open-group, or alternation operator. */
|
||||
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
|
||||
|
||||
/* If this bit is set, then *, +, ?, and { cannot be first in an re or
|
||||
immediately after an alternation or begin-group operator. */
|
||||
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
|
||||
|
||||
/* If this bit is set, then . matches newline.
|
||||
If not set, then it doesn't. */
|
||||
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
|
||||
|
||||
/* If this bit is set, then . doesn't match NUL.
|
||||
If not set, then it does. */
|
||||
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
|
||||
|
||||
/* If this bit is set, nonmatching lists [^...] do not match newline.
|
||||
If not set, they do. */
|
||||
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
|
||||
|
||||
/* If this bit is set, either \{...\} or {...} defines an
|
||||
interval, depending on RE_NO_BK_BRACES.
|
||||
If not set, \{, \}, {, and } are literals. */
|
||||
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
|
||||
|
||||
/* If this bit is set, +, ? and | aren't recognized as operators.
|
||||
If not set, they are. */
|
||||
#define RE_LIMITED_OPS (RE_INTERVALS << 1)
|
||||
|
||||
/* If this bit is set, newline is an alternation operator.
|
||||
If not set, newline is literal. */
|
||||
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
|
||||
|
||||
/* If this bit is set, then `{...}' defines an interval, and \{ and \}
|
||||
are literals.
|
||||
If not set, then `\{...\}' defines an interval. */
|
||||
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
|
||||
|
||||
/* If this bit is set, (...) defines a group, and \( and \) are literals.
|
||||
If not set, \(...\) defines a group, and ( and ) are literals. */
|
||||
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
|
||||
|
||||
/* If this bit is set, then \<digit> matches <digit>.
|
||||
If not set, then \<digit> is a back-reference. */
|
||||
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
|
||||
|
||||
/* If this bit is set, then | is an alternation operator, and \| is literal.
|
||||
If not set, then \| is an alternation operator, and | is literal. */
|
||||
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
|
||||
|
||||
/* If this bit is set, then an ending range point collating higher
|
||||
than the starting range point, as in [z-a], is invalid.
|
||||
If not set, then when ending range point collates higher than the
|
||||
starting range point, the range is ignored. */
|
||||
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
|
||||
|
||||
/* If this bit is set, then an unmatched ) is ordinary.
|
||||
If not set, then an unmatched ) is invalid. */
|
||||
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
|
||||
|
||||
/* If this bit is set, succeed as soon as we match the whole pattern,
|
||||
without further backtracking. */
|
||||
#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
|
||||
|
||||
/* If this bit is set, do not process the GNU regex operators.
|
||||
If not set, then the GNU regex operators are recognized. */
|
||||
#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
|
||||
|
||||
/* If this bit is set, turn on internal regex debugging.
|
||||
If not set, and debugging was on, turn it off.
|
||||
This only works if regex.c is compiled -DDEBUG.
|
||||
We define this bit always, so that all that's needed to turn on
|
||||
debugging is to recompile regex.c; the calling code can always have
|
||||
this bit set, and it won't affect anything in the normal case. */
|
||||
#define RE_DEBUG (RE_NO_GNU_OPS << 1)
|
||||
|
||||
/* This global variable defines the particular regexp syntax to use (for
|
||||
some interfaces). When a regexp is compiled, the syntax used is
|
||||
stored in the pattern buffer, so changing this does not affect
|
||||
already-compiled regexps. */
|
||||
extern reg_syntax_t re_syntax_options;
|
||||
|
||||
/* Define combinations of the above bits for the standard possibilities.
|
||||
(The [[[ comments delimit what gets put into the Texinfo file, so
|
||||
don't delete them!) */
|
||||
/* [[[begin syntaxes]]] */
|
||||
#define RE_SYNTAX_EMACS 0
|
||||
|
||||
#define RE_SYNTAX_AWK \
|
||||
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
|
||||
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
|
||||
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
|
||||
| RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
|
||||
| RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
|
||||
|
||||
#define RE_SYNTAX_GNU_AWK \
|
||||
((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
|
||||
& ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS))
|
||||
|
||||
#define RE_SYNTAX_POSIX_AWK \
|
||||
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
|
||||
| RE_INTERVALS | RE_NO_GNU_OPS)
|
||||
|
||||
#define RE_SYNTAX_GREP \
|
||||
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \
|
||||
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
|
||||
| RE_NEWLINE_ALT)
|
||||
|
||||
#define RE_SYNTAX_EGREP \
|
||||
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
|
||||
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
|
||||
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \
|
||||
| RE_NO_BK_VBAR)
|
||||
|
||||
#define RE_SYNTAX_POSIX_EGREP \
|
||||
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
|
||||
|
||||
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
|
||||
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
|
||||
|
||||
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
|
||||
|
||||
/* Syntax bits common to both basic and extended POSIX regex syntax. */
|
||||
#define _RE_SYNTAX_POSIX_COMMON \
|
||||
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
|
||||
| RE_INTERVALS | RE_NO_EMPTY_RANGES)
|
||||
|
||||
#define RE_SYNTAX_POSIX_BASIC \
|
||||
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
|
||||
|
||||
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
|
||||
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
|
||||
isn't minimal, since other operators, such as \`, aren't disabled. */
|
||||
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
|
||||
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
|
||||
|
||||
#define RE_SYNTAX_POSIX_EXTENDED \
|
||||
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
|
||||
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
|
||||
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
|
||||
| RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
|
||||
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
|
||||
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
|
||||
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
|
||||
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
|
||||
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
|
||||
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
|
||||
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
/* [[[end syntaxes]]] */
|
||||
|
||||
/* Maximum number of duplicates an interval can allow. Some systems
|
||||
(erroneously) define this in other header files, but we want our
|
||||
value, so remove any previous define. */
|
||||
#ifdef RE_DUP_MAX
|
||||
# undef RE_DUP_MAX
|
||||
#endif
|
||||
/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
|
||||
#define RE_DUP_MAX (0x7fff)
|
||||
|
||||
|
||||
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
|
||||
|
||||
/* If this bit is set, then use extended regular expression syntax.
|
||||
If not set, then use basic regular expression syntax. */
|
||||
#define REG_EXTENDED 1
|
||||
|
||||
/* If this bit is set, then ignore case when matching.
|
||||
If not set, then case is significant. */
|
||||
#define REG_ICASE (REG_EXTENDED << 1)
|
||||
|
||||
/* If this bit is set, then anchors do not match at newline
|
||||
characters in the string.
|
||||
If not set, then anchors do match at newlines. */
|
||||
#define REG_NEWLINE (REG_ICASE << 1)
|
||||
|
||||
/* If this bit is set, then report only success or fail in regexec.
|
||||
If not set, then returns differ between not matching and errors. */
|
||||
#define REG_NOSUB (REG_NEWLINE << 1)
|
||||
|
||||
|
||||
/* POSIX `eflags' bits (i.e., information for regexec). */
|
||||
|
||||
/* If this bit is set, then the beginning-of-line operator doesn't match
|
||||
the beginning of the string (presumably because it's not the
|
||||
beginning of a line).
|
||||
If not set, then the beginning-of-line operator does match the
|
||||
beginning of the string. */
|
||||
#define REG_NOTBOL 1
|
||||
|
||||
/* Like REG_NOTBOL, except for the end-of-line. */
|
||||
#define REG_NOTEOL (1 << 1)
|
||||
|
||||
|
||||
/* If any error codes are removed, changed, or added, update the
|
||||
`re_error_msg' table in regex.c. */
|
||||
typedef enum
|
||||
{
|
||||
#ifdef _XOPEN_SOURCE
|
||||
REG_ENOSYS = -1, /* This will never happen for this implementation. */
|
||||
#endif
|
||||
|
||||
REG_NOERROR = 0, /* Success. */
|
||||
REG_NOMATCH, /* Didn't find a match (for regexec). */
|
||||
|
||||
/* POSIX regcomp return error codes. (In the order listed in the
|
||||
standard.) */
|
||||
REG_BADPAT, /* Invalid pattern. */
|
||||
REG_ECOLLATE, /* Not implemented. */
|
||||
REG_ECTYPE, /* Invalid character class name. */
|
||||
REG_EESCAPE, /* Trailing backslash. */
|
||||
REG_ESUBREG, /* Invalid back reference. */
|
||||
REG_EBRACK, /* Unmatched left bracket. */
|
||||
REG_EPAREN, /* Parenthesis imbalance. */
|
||||
REG_EBRACE, /* Unmatched \{. */
|
||||
REG_BADBR, /* Invalid contents of \{\}. */
|
||||
REG_ERANGE, /* Invalid range end. */
|
||||
REG_ESPACE, /* Ran out of memory. */
|
||||
REG_BADRPT, /* No preceding re for repetition op. */
|
||||
|
||||
/* Error codes we've added. */
|
||||
REG_EEND, /* Premature end. */
|
||||
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
|
||||
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
|
||||
} reg_errcode_t;
|
||||
|
||||
/* This data structure represents a compiled pattern. Before calling
|
||||
the pattern compiler, the fields `buffer', `allocated', `fastmap',
|
||||
`translate', and `no_sub' can be set. After the pattern has been
|
||||
compiled, the `re_nsub' field is available. All other fields are
|
||||
private to the regex routines. */
|
||||
|
||||
#ifndef RE_TRANSLATE_TYPE
|
||||
# define RE_TRANSLATE_TYPE char *
|
||||
#endif
|
||||
|
||||
struct re_pattern_buffer
|
||||
{
|
||||
/* [[[begin pattern_buffer]]] */
|
||||
/* Space that holds the compiled pattern. It is declared as
|
||||
`unsigned char *' because its elements are
|
||||
sometimes used as array indexes. */
|
||||
unsigned char *buffer;
|
||||
|
||||
/* Number of bytes to which `buffer' points. */
|
||||
unsigned long int allocated;
|
||||
|
||||
/* Number of bytes actually used in `buffer'. */
|
||||
unsigned long int used;
|
||||
|
||||
/* Syntax setting with which the pattern was compiled. */
|
||||
reg_syntax_t syntax;
|
||||
|
||||
/* Pointer to a fastmap, if any, otherwise zero. re_search uses
|
||||
the fastmap, if there is one, to skip over impossible
|
||||
starting points for matches. */
|
||||
char *fastmap;
|
||||
|
||||
/* Either a translate table to apply to all characters before
|
||||
comparing them, or zero for no translation. The translation
|
||||
is applied to a pattern when it is compiled and to a string
|
||||
when it is matched. */
|
||||
RE_TRANSLATE_TYPE translate;
|
||||
|
||||
/* Number of subexpressions found by the compiler. */
|
||||
size_t re_nsub;
|
||||
|
||||
/* Zero if this pattern cannot match the empty string, one else.
|
||||
Well, in truth it's used only in `re_search_2', to see
|
||||
whether or not we should use the fastmap, so we don't set
|
||||
this absolutely perfectly; see `re_compile_fastmap' (the
|
||||
`duplicate' case). */
|
||||
unsigned can_be_null : 1;
|
||||
|
||||
/* If REGS_UNALLOCATED, allocate space in the `regs' structure
|
||||
for `max (RE_NREGS, re_nsub + 1)' groups.
|
||||
If REGS_REALLOCATE, reallocate space if necessary.
|
||||
If REGS_FIXED, use what's there. */
|
||||
#define REGS_UNALLOCATED 0
|
||||
#define REGS_REALLOCATE 1
|
||||
#define REGS_FIXED 2
|
||||
unsigned regs_allocated : 2;
|
||||
|
||||
/* Set to zero when `regex_compile' compiles a pattern; set to one
|
||||
by `re_compile_fastmap' if it updates the fastmap. */
|
||||
unsigned fastmap_accurate : 1;
|
||||
|
||||
/* If set, `re_match_2' does not return information about
|
||||
subexpressions. */
|
||||
unsigned no_sub : 1;
|
||||
|
||||
/* If set, a beginning-of-line anchor doesn't match at the
|
||||
beginning of the string. */
|
||||
unsigned not_bol : 1;
|
||||
|
||||
/* Similarly for an end-of-line anchor. */
|
||||
unsigned not_eol : 1;
|
||||
|
||||
/* If true, an anchor at a newline matches. */
|
||||
unsigned newline_anchor : 1;
|
||||
|
||||
/* [[[end pattern_buffer]]] */
|
||||
};
|
||||
|
||||
typedef struct re_pattern_buffer regex_t;
|
||||
|
||||
/* Type for byte offsets within the string. POSIX mandates this. */
|
||||
typedef int regoff_t;
|
||||
|
||||
|
||||
/* This is the structure we store register match data in. See
|
||||
regex.texinfo for a full description of what registers match. */
|
||||
struct re_registers
|
||||
{
|
||||
unsigned num_regs;
|
||||
regoff_t *start;
|
||||
regoff_t *end;
|
||||
};
|
||||
|
||||
|
||||
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
|
||||
`re_match_2' returns information about at least this many registers
|
||||
the first time a `regs' structure is passed. */
|
||||
#ifndef RE_NREGS
|
||||
# define RE_NREGS 30
|
||||
#endif
|
||||
|
||||
|
||||
/* POSIX specification for registers. Aside from the different names than
|
||||
`re_registers', POSIX uses an array of structures, instead of a
|
||||
structure of arrays. */
|
||||
typedef struct
|
||||
{
|
||||
regoff_t rm_so; /* Byte offset from string's start to substring's start. */
|
||||
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
|
||||
} regmatch_t;
|
||||
|
||||
/* Declarations for routines. */
|
||||
|
||||
/* To avoid duplicating every routine declaration -- once with a
|
||||
prototype (if we are ANSI), and once without (if we aren't) -- we
|
||||
use the following macro to declare argument types. This
|
||||
unfortunately clutters up the declarations a bit, but I think it's
|
||||
worth it. */
|
||||
|
||||
#if __STDC__
|
||||
|
||||
# define _RE_ARGS(args) args
|
||||
|
||||
#else /* not __STDC__ */
|
||||
|
||||
# define _RE_ARGS(args) ()
|
||||
|
||||
#endif /* not __STDC__ */
|
||||
|
||||
/* Sets the current default syntax to SYNTAX, and return the old syntax.
|
||||
You can also simply assign to the `re_syntax_options' variable. */
|
||||
extern reg_syntax_t __re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
|
||||
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
|
||||
|
||||
/* Compile the regular expression PATTERN, with length LENGTH
|
||||
and syntax given by the global `re_syntax_options', into the buffer
|
||||
BUFFER. Return NULL if successful, and an error string if not. */
|
||||
extern const char *__re_compile_pattern
|
||||
_RE_ARGS ((const char *pattern, size_t length,
|
||||
struct re_pattern_buffer *buffer));
|
||||
extern const char *re_compile_pattern
|
||||
_RE_ARGS ((const char *pattern, size_t length,
|
||||
struct re_pattern_buffer *buffer));
|
||||
|
||||
|
||||
/* Compile a fastmap for the compiled pattern in BUFFER; used to
|
||||
accelerate searches. Return 0 if successful and -2 if was an
|
||||
internal error. */
|
||||
extern int __re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
|
||||
|
||||
|
||||
/* Search in the string STRING (with length LENGTH) for the pattern
|
||||
compiled into BUFFER. Start searching at position START, for RANGE
|
||||
characters. Return the starting position of the match, -1 for no
|
||||
match, or -2 for an internal error. Also return register
|
||||
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
|
||||
extern int __re_search
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, int range, struct re_registers *regs));
|
||||
extern int re_search
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, int range, struct re_registers *regs));
|
||||
|
||||
|
||||
/* Like `re_search', but search in the concatenation of STRING1 and
|
||||
STRING2. Also, stop searching at index START + STOP. */
|
||||
extern int __re_search_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, int range, struct re_registers *regs, int stop));
|
||||
extern int re_search_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, int range, struct re_registers *regs, int stop));
|
||||
|
||||
|
||||
/* Like `re_search', but return how many characters in STRING the regexp
|
||||
in BUFFER matched, starting at position START. */
|
||||
extern int __re_match
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, struct re_registers *regs));
|
||||
extern int re_match
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
|
||||
int length, int start, struct re_registers *regs));
|
||||
|
||||
|
||||
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
|
||||
extern int __re_match_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, struct re_registers *regs, int stop));
|
||||
extern int re_match_2
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
|
||||
int length1, const char *string2, int length2,
|
||||
int start, struct re_registers *regs, int stop));
|
||||
|
||||
|
||||
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
|
||||
ENDS. Subsequent matches using BUFFER and REGS will use this memory
|
||||
for recording register information. STARTS and ENDS must be
|
||||
allocated with malloc, and must each be at least `NUM_REGS * sizeof
|
||||
(regoff_t)' bytes long.
|
||||
|
||||
If NUM_REGS == 0, then subsequent matches should allocate their own
|
||||
register data.
|
||||
|
||||
Unless this function is called, the first search or match using
|
||||
PATTERN_BUFFER will allocate its own register data, without
|
||||
freeing the old data. */
|
||||
extern void __re_set_registers
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
|
||||
unsigned num_regs, regoff_t *starts, regoff_t *ends));
|
||||
extern void re_set_registers
|
||||
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
|
||||
unsigned num_regs, regoff_t *starts, regoff_t *ends));
|
||||
|
||||
#ifdef _REGEX_RE_COMP
|
||||
# ifndef _CRAY
|
||||
/* 4.2 bsd compatibility. */
|
||||
extern char *re_comp _RE_ARGS ((const char *));
|
||||
extern int re_exec _RE_ARGS ((const char *));
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* POSIX compatibility. */
|
||||
extern int __regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
|
||||
int __cflags));
|
||||
extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
|
||||
int __cflags));
|
||||
|
||||
extern int __regexec _RE_ARGS ((const regex_t *__preg,
|
||||
const char *__string, size_t __nmatch,
|
||||
regmatch_t __pmatch[], int __eflags));
|
||||
extern int regexec _RE_ARGS ((const regex_t *__preg,
|
||||
const char *__string, size_t __nmatch,
|
||||
regmatch_t __pmatch[], int __eflags));
|
||||
|
||||
extern size_t __regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
|
||||
char *__errbuf, size_t __errbuf_size));
|
||||
extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
|
||||
char *__errbuf, size_t __errbuf_size));
|
||||
|
||||
extern void __regfree _RE_ARGS ((regex_t *__preg));
|
||||
extern void regfree _RE_ARGS ((regex_t *__preg));
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* C++ */
|
||||
|
||||
#endif /* regex.h */
|
||||
|
||||
/*
|
||||
Local variables:
|
||||
make-backup-files: t
|
||||
version-control: t
|
||||
trim-versions-without-asking: nil
|
||||
End:
|
||||
*/
|
15
reactos/include/reactos/wine/winbase.h
Normal file
15
reactos/include/reactos/wine/winbase.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef __WINE_WINBASE_H
|
||||
#define __WINE_WINBASE_H
|
||||
|
||||
#include_next <winbase.h>
|
||||
|
||||
/* undocumented functions */
|
||||
|
||||
typedef struct tagSYSLEVEL
|
||||
{
|
||||
CRITICAL_SECTION crst;
|
||||
INT level;
|
||||
} SYSLEVEL;
|
||||
|
||||
|
||||
#endif /* __WINE_WINBASE_H */
|
|
@ -13,12 +13,516 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __WINE_WINE_WINBASE16_H
|
||||
#define __WINE_WINE_WINBASE16_H
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winnls.h>
|
||||
#include <wine/windef16.h>
|
||||
#include <wine/library.h>
|
||||
|
||||
#include <pshpack1.h>
|
||||
|
||||
/* Process database (i.e. a normal DOS PSP) */
|
||||
typedef struct
|
||||
{
|
||||
WORD int20; /* 00 int 20h instruction */
|
||||
WORD nextParagraph; /* 02 Segment of next paragraph */
|
||||
BYTE reserved1;
|
||||
BYTE dispatcher[5]; /* 05 Long call to DOS */
|
||||
FARPROC16 savedint22; /* 0a Saved int 22h handler */
|
||||
FARPROC16 savedint23; /* 0e Saved int 23h handler */
|
||||
FARPROC16 savedint24; /* 12 Saved int 24h handler */
|
||||
WORD parentPSP; /* 16 Selector of parent PSP */
|
||||
BYTE fileHandles[20]; /* 18 Open file handles */
|
||||
HANDLE16 environment; /* 2c Selector of environment */
|
||||
DWORD saveStack; /* 2e SS:SP on last int21 call */
|
||||
WORD nbFiles; /* 32 Number of file handles */
|
||||
SEGPTR fileHandlesPtr; /* 34 Pointer to file handle table */
|
||||
HANDLE16 hFileHandles; /* 38 Handle to fileHandlesPtr */
|
||||
WORD reserved3[17];
|
||||
BYTE fcb1[16]; /* 5c First FCB */
|
||||
BYTE fcb2[20]; /* 6c Second FCB */
|
||||
BYTE cmdLine[128]; /* 80 Command-line (first byte is len)*/
|
||||
BYTE padding[16]; /* Some apps access beyond the end of the cmd line */
|
||||
} PDB16;
|
||||
|
||||
/* Task database. See 'Windows Internals' p. 226.
|
||||
* Note that 16-bit OLE 2 libs like to read it directly
|
||||
* so we have to keep entry offsets as they are.
|
||||
*/
|
||||
typedef struct _TDB
|
||||
{
|
||||
HTASK16 hNext; /* 00 Selector of next TDB */
|
||||
DWORD ss_sp; /* 02 Stack pointer of task */
|
||||
WORD nEvents; /* 06 Events for this task */
|
||||
INT16 priority; /* 08 Task priority, -32..15 */
|
||||
WORD unused1; /* 0a */
|
||||
HTASK16 hSelf; /* 0c Selector of this TDB */
|
||||
HANDLE16 hPrevInstance; /* 0e Previous instance of module */
|
||||
DWORD unused2; /* 10 */
|
||||
WORD ctrlword8087; /* 14 80x87 control word */
|
||||
WORD flags; /* 16 Task flags */
|
||||
UINT16 error_mode; /* 18 Error mode (see SetErrorMode)*/
|
||||
WORD version; /* 1a Expected Windows version */
|
||||
HANDLE16 hInstance; /* 1c Instance handle for task */
|
||||
HMODULE16 hModule; /* 1e Module handle */
|
||||
HQUEUE16 hQueue; /* 20 Selector of task queue */
|
||||
HTASK16 hParent; /* 22 Selector of TDB of parent */
|
||||
WORD signal_flags; /* 24 Flags for signal handler */
|
||||
FARPROC16 sighandler; /* 26 Signal handler */
|
||||
FARPROC16 userhandler; /* 2a USER signal handler */
|
||||
FARPROC16 discardhandler; /* 2e Handler for GlobalNotify() */
|
||||
FARPROC16 int0; /* 32 int 0 (divide by 0) handler */
|
||||
FARPROC16 int2; /* 36 int 2 (NMI) handler */
|
||||
FARPROC16 int4; /* 3a int 4 (INTO) handler */
|
||||
FARPROC16 int6; /* 3e int 6 (invalid opc) handler */
|
||||
FARPROC16 int7; /* 42 int 7 (coprocessor) handler */
|
||||
FARPROC16 int3e; /* 46 int 3e (80x87 emu) handler */
|
||||
FARPROC16 int75; /* 4a int 75 (80x87 error) handler */
|
||||
DWORD compat_flags; /* 4e Compatibility flags */
|
||||
BYTE unused4[2]; /* 52 */
|
||||
struct _TEB *teb; /* 54 Pointer to thread database */
|
||||
BYTE unused5[8]; /* 58 */
|
||||
HANDLE16 hPDB; /* 60 Selector of PDB (i.e. PSP) */
|
||||
SEGPTR dta; /* 62 Current DTA */
|
||||
BYTE curdrive; /* 66 Current drive */
|
||||
CHAR curdir[65]; /* 67 Current directory */
|
||||
WORD nCmdShow; /* a8 cmdShow parameter to WinMain */
|
||||
HTASK16 hYieldTo; /* aa Next task to schedule */
|
||||
DWORD dlls_to_init; /* ac Ptr to DLLs to initialize */
|
||||
HANDLE16 hCSAlias; /* b0 Code segment for this TDB */
|
||||
WORD thunks[8*4]; /* b2 Make proc instance thunks */
|
||||
CHAR module_name[8]; /* f2 Module name for task */
|
||||
WORD magic; /* fa TDB signature */
|
||||
HANDLE hEvent; /* fc scheduler event handle */
|
||||
PDB16 pdb; /* 100 PDB for this task */
|
||||
} TDB;
|
||||
|
||||
/* TDB flags */
|
||||
#define TDBF_WINOLDAP 0x0001
|
||||
#define TDBF_OS2APP 0x0008
|
||||
#define TDBF_WIN32 0x0010
|
||||
|
||||
/* Windows 3.1 USER signals */
|
||||
#define USIG16_TERMINATION 0x0020
|
||||
#define USIG16_DLL_LOAD 0x0040
|
||||
#define USIG16_DLL_UNLOAD 0x0080
|
||||
#define USIG16_GPF 0x0666
|
||||
|
||||
typedef struct _SEGINFO {
|
||||
UINT16 offSegment;
|
||||
UINT16 cbSegment;
|
||||
UINT16 flags;
|
||||
UINT16 cbAlloc;
|
||||
HGLOBAL16 h;
|
||||
UINT16 alignShift;
|
||||
UINT16 reserved[2];
|
||||
} SEGINFO;
|
||||
|
||||
/* GetWinFlags */
|
||||
|
||||
#define WF_PMODE 0x0001
|
||||
#define WF_CPU286 0x0002
|
||||
#define WF_CPU386 0x0004
|
||||
#define WF_CPU486 0x0008
|
||||
#define WF_STANDARD 0x0010
|
||||
#define WF_WIN286 0x0010
|
||||
#define WF_ENHANCED 0x0020
|
||||
#define WF_WIN386 0x0020
|
||||
#define WF_CPU086 0x0040
|
||||
#define WF_CPU186 0x0080
|
||||
#define WF_LARGEFRAME 0x0100
|
||||
#define WF_SMALLFRAME 0x0200
|
||||
#define WF_80x87 0x0400
|
||||
#define WF_PAGING 0x0800
|
||||
#define WF_HASCPUID 0x2000
|
||||
#define WF_WIN32WOW 0x4000 /* undoc */
|
||||
#define WF_WLO 0x8000
|
||||
|
||||
/* Parameters for LoadModule() */
|
||||
typedef struct
|
||||
{
|
||||
HGLOBAL16 hEnvironment; /* Environment segment */
|
||||
SEGPTR cmdLine; /* Command-line */
|
||||
SEGPTR showCmd; /* Code for ShowWindow() */
|
||||
SEGPTR reserved;
|
||||
} LOADPARAMS16;
|
||||
|
||||
/* Debugging support (DEBUG SYSTEM ONLY) */
|
||||
typedef struct
|
||||
{
|
||||
WORD flags;
|
||||
DWORD dwOptions;
|
||||
DWORD dwFilter;
|
||||
CHAR achAllocModule[8];
|
||||
DWORD dwAllocBreak;
|
||||
DWORD dwAllocCount;
|
||||
} WINDEBUGINFO16, *LPWINDEBUGINFO16;
|
||||
|
||||
/* definitions specific to Wine 16-bit relaying support */
|
||||
|
||||
/* 32-bit stack layout after __wine_call_to_16() */
|
||||
typedef struct _STACK32FRAME
|
||||
{
|
||||
DWORD restore_addr; /* 00 return address for restoring code selector */
|
||||
DWORD codeselector; /* 04 code selector to restore */
|
||||
EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
|
||||
SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
|
||||
DWORD edi; /* 14 saved registers */
|
||||
DWORD esi; /* 18 */
|
||||
DWORD ebx; /* 1c */
|
||||
DWORD ebp; /* 20 saved 32-bit frame pointer */
|
||||
DWORD retaddr; /* 24 return address */
|
||||
DWORD target; /* 28 target address / CONTEXT86 pointer */
|
||||
DWORD nb_args; /* 2c number of 16-bit argument bytes */
|
||||
} STACK32FRAME;
|
||||
|
||||
/* 16-bit stack layout after __wine_call_from_16() */
|
||||
typedef struct _STACK16FRAME
|
||||
{
|
||||
STACK32FRAME *frame32; /* 00 32-bit frame from last CallTo16() */
|
||||
DWORD edx; /* 04 saved registers */
|
||||
DWORD ecx; /* 08 */
|
||||
DWORD ebp; /* 0c */
|
||||
WORD ds; /* 10 */
|
||||
WORD es; /* 12 */
|
||||
WORD fs; /* 14 */
|
||||
WORD gs; /* 16 */
|
||||
DWORD callfrom_ip; /* 18 callfrom tail IP */
|
||||
DWORD module_cs; /* 1c module code segment */
|
||||
DWORD relay; /* 20 relay function address */
|
||||
WORD entry_ip; /* 22 entry point IP */
|
||||
DWORD entry_point; /* 26 API entry point to call, reused as mutex count */
|
||||
WORD bp; /* 2a 16-bit stack frame chain */
|
||||
WORD ip; /* 2c return address */
|
||||
WORD cs; /* 2e */
|
||||
} STACK16FRAME;
|
||||
|
||||
/* argument type flags for relay debugging */
|
||||
enum arg_types
|
||||
{
|
||||
ARG_NONE = 0, /* indicates end of arg list */
|
||||
ARG_WORD, /* unsigned word */
|
||||
ARG_SWORD, /* signed word */
|
||||
ARG_LONG, /* long or segmented pointer */
|
||||
ARG_PTR, /* linear pointer */
|
||||
ARG_STR, /* linear pointer to null-terminated string */
|
||||
ARG_SEGSTR, /* segmented pointer to null-terminated string */
|
||||
ARG_VARARG /* start of varargs */
|
||||
};
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
#define INVALID_HANDLE_VALUE16 ((HANDLE16) -1)
|
||||
#define INFINITE16 0xFFFF
|
||||
|
||||
typedef struct {
|
||||
DWORD dwOSVersionInfoSize;
|
||||
DWORD dwMajorVersion;
|
||||
DWORD dwMinorVersion;
|
||||
DWORD dwBuildNumber;
|
||||
DWORD dwPlatformId;
|
||||
CHAR szCSDVersion[128];
|
||||
} OSVERSIONINFO16;
|
||||
|
||||
|
||||
/*
|
||||
* NE Header FORMAT FLAGS
|
||||
*/
|
||||
#define NE_FFLAGS_SINGLEDATA 0x0001
|
||||
#define NE_FFLAGS_MULTIPLEDATA 0x0002
|
||||
#define NE_FFLAGS_WIN32 0x0010
|
||||
#define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
|
||||
#define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
|
||||
#define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
|
||||
#define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
|
||||
#define NE_FFLAGS_SELFLOAD 0x0800
|
||||
#define NE_FFLAGS_LINKERROR 0x2000
|
||||
#define NE_FFLAGS_CALLWEP 0x4000
|
||||
#define NE_FFLAGS_LIBMODULE 0x8000
|
||||
|
||||
/*
|
||||
* NE Header OPERATING SYSTEM
|
||||
*/
|
||||
#define NE_OSFLAGS_UNKNOWN 0x01
|
||||
#define NE_OSFLAGS_WINDOWS 0x04
|
||||
|
||||
/*
|
||||
* NE Header ADDITIONAL FLAGS
|
||||
*/
|
||||
#define NE_AFLAGS_WIN2_PROTMODE 0x02
|
||||
#define NE_AFLAGS_WIN2_PROFONTS 0x04
|
||||
#define NE_AFLAGS_FASTLOAD 0x08
|
||||
|
||||
/*
|
||||
* Segment Flags
|
||||
*/
|
||||
#define NE_SEGFLAGS_DATA 0x0001
|
||||
#define NE_SEGFLAGS_ALLOCATED 0x0002
|
||||
#define NE_SEGFLAGS_LOADED 0x0004
|
||||
#define NE_SEGFLAGS_ITERATED 0x0008
|
||||
#define NE_SEGFLAGS_MOVEABLE 0x0010
|
||||
#define NE_SEGFLAGS_SHAREABLE 0x0020
|
||||
#define NE_SEGFLAGS_PRELOAD 0x0040
|
||||
#define NE_SEGFLAGS_EXECUTEONLY 0x0080
|
||||
#define NE_SEGFLAGS_READONLY 0x0080
|
||||
#define NE_SEGFLAGS_RELOC_DATA 0x0100
|
||||
#define NE_SEGFLAGS_SELFLOAD 0x0800
|
||||
#define NE_SEGFLAGS_DISCARDABLE 0x1000
|
||||
#define NE_SEGFLAGS_32BIT 0x2000
|
||||
|
||||
/*
|
||||
* Resource table structures.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
WORD offset;
|
||||
WORD length;
|
||||
WORD flags;
|
||||
WORD id;
|
||||
HANDLE16 handle;
|
||||
WORD usage;
|
||||
} NE_NAMEINFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WORD type_id; /* Type identifier */
|
||||
WORD count; /* Number of resources of this type */
|
||||
FARPROC16 resloader; /* SetResourceHandler() */
|
||||
/*
|
||||
* Name info array.
|
||||
*/
|
||||
} NE_TYPEINFO;
|
||||
|
||||
#define NE_RSCTYPE_CURSOR 0x8001
|
||||
#define NE_RSCTYPE_BITMAP 0x8002
|
||||
#define NE_RSCTYPE_ICON 0x8003
|
||||
#define NE_RSCTYPE_MENU 0x8004
|
||||
#define NE_RSCTYPE_DIALOG 0x8005
|
||||
#define NE_RSCTYPE_STRING 0x8006
|
||||
#define NE_RSCTYPE_FONTDIR 0x8007
|
||||
#define NE_RSCTYPE_FONT 0x8008
|
||||
#define NE_RSCTYPE_ACCELERATOR 0x8009
|
||||
#define NE_RSCTYPE_RCDATA 0x800a
|
||||
#define NE_RSCTYPE_GROUP_CURSOR 0x800c
|
||||
#define NE_RSCTYPE_GROUP_ICON 0x800e
|
||||
|
||||
|
||||
#define __AHSHIFT 3 /* don't change! */
|
||||
#define __AHINCR (1 << __AHSHIFT)
|
||||
|
||||
/* undocumented functions */
|
||||
WORD WINAPI AllocCStoDSAlias16(WORD);
|
||||
WORD WINAPI AllocDStoCSAlias16(WORD);
|
||||
HGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD);
|
||||
WORD WINAPI AllocSelector16(WORD);
|
||||
WORD WINAPI AllocSelectorArray16(WORD);
|
||||
VOID WINAPI DirectedYield16(HTASK16);
|
||||
HGLOBAL16 WINAPI DirectResAlloc16(HINSTANCE16,WORD,UINT16);
|
||||
HANDLE16 WINAPI FarGetOwner16(HGLOBAL16);
|
||||
VOID WINAPI FarSetOwner16(HGLOBAL16,HANDLE16);
|
||||
FARPROC16 WINAPI FileCDR16(FARPROC16);
|
||||
WORD WINAPI FreeSelector16(WORD);
|
||||
HANDLE16 WINAPI GetAtomHandle16(ATOM);
|
||||
HANDLE16 WINAPI GetCodeHandle16(FARPROC16);
|
||||
BOOL16 WINAPI GetCodeInfo16(FARPROC16,SEGINFO*);
|
||||
DWORD WINAPI GetCurrentPDB16(void);
|
||||
HTASK16 WINAPI GetCurrentTask(void);
|
||||
SEGPTR WINAPI GetDOSEnvironment16(void);
|
||||
HMODULE16 WINAPI GetExePtr(HANDLE16);
|
||||
WORD WINAPI GetExeVersion16(void);
|
||||
WORD WINAPI GetExpWinVer16(HMODULE16);
|
||||
HQUEUE16 WINAPI GetFastQueue16(void);
|
||||
DWORD WINAPI GetHeapSpaces16(HMODULE16);
|
||||
INT16 WINAPI GetInstanceData16(HINSTANCE16,WORD,INT16);
|
||||
BOOL16 WINAPI GetModuleName16(HINSTANCE16,LPSTR,INT16);
|
||||
INT16 WINAPI GetModuleUsage16(HINSTANCE16);
|
||||
UINT16 WINAPI GetNumTasks16(void);
|
||||
SEGPTR WINAPI GetpWin16Lock16(void);
|
||||
DWORD WINAPI GetSelectorLimit16(WORD);
|
||||
FARPROC16 WINAPI GetSetKernelDOSProc16(FARPROC16 DosProc);
|
||||
HINSTANCE16 WINAPI GetTaskDS16(void);
|
||||
HQUEUE16 WINAPI GetTaskQueue16(HTASK16);
|
||||
HQUEUE16 WINAPI GetThreadQueue16(DWORD);
|
||||
DWORD WINAPI GetWinFlags16(void);
|
||||
DWORD WINAPI GlobalDOSAlloc16(DWORD);
|
||||
WORD WINAPI GlobalDOSFree16(WORD);
|
||||
void WINAPI GlobalFreeAll16(HGLOBAL16);
|
||||
DWORD WINAPI GlobalHandleNoRIP16(WORD);
|
||||
WORD WINAPI GlobalHandleToSel16(HGLOBAL16);
|
||||
HGLOBAL16 WINAPI GlobalLRUNewest16(HGLOBAL16);
|
||||
HGLOBAL16 WINAPI GlobalLRUOldest16(HGLOBAL16);
|
||||
VOID WINAPI GlobalNotify16(FARPROC16);
|
||||
WORD WINAPI GlobalPageLock16(HGLOBAL16);
|
||||
WORD WINAPI GlobalPageUnlock16(HGLOBAL16);
|
||||
SEGPTR WINAPI HasGPHandler16(SEGPTR);
|
||||
BOOL16 WINAPI IsSharedSelector16(HANDLE16);
|
||||
BOOL16 WINAPI IsTask16(HTASK16);
|
||||
HTASK16 WINAPI IsTaskLocked16(void);
|
||||
VOID WINAPI LogError16(UINT16, LPVOID);
|
||||
VOID WINAPI LogParamError16(UINT16,FARPROC16,LPVOID);
|
||||
WORD WINAPI LocalCountFree16(void);
|
||||
WORD WINAPI LocalHandleDelta16(WORD);
|
||||
WORD WINAPI LocalHeapSize16(void);
|
||||
BOOL16 WINAPI LocalInit16(HANDLE16,WORD,WORD);
|
||||
FARPROC16 WINAPI LocalNotify16(FARPROC16);
|
||||
HTASK16 WINAPI LockCurrentTask16(BOOL16);
|
||||
VOID WINAPI OldYield16(void);
|
||||
VOID WINAPI WIN32_OldYield16(void);
|
||||
VOID WINAPI PostEvent16(HTASK16);
|
||||
WORD WINAPI PrestoChangoSelector16(WORD,WORD);
|
||||
WORD WINAPI SelectorAccessRights16(WORD,WORD,WORD);
|
||||
void WINAPI SetFastQueue16(DWORD,HQUEUE16);
|
||||
VOID WINAPI SetPriority16(HTASK16,INT16);
|
||||
FARPROC16 WINAPI SetResourceHandler16(HINSTANCE16,LPCSTR,FARPROC16);
|
||||
WORD WINAPI SetSelectorLimit16(WORD,DWORD);
|
||||
HQUEUE16 WINAPI SetTaskQueue16(HTASK16,HQUEUE16);
|
||||
HQUEUE16 WINAPI SetThreadQueue16(DWORD,HQUEUE16);
|
||||
VOID WINAPI SwitchStackTo16(WORD,WORD,WORD);
|
||||
BOOL16 WINAPI WaitEvent16(HTASK16);
|
||||
VOID WINAPI WriteOutProfiles16(void);
|
||||
VOID WINAPI hmemcpy16(LPVOID,LPCVOID,LONG);
|
||||
VOID WINAPI _CreateSysLevel(SYSLEVEL*,INT);
|
||||
VOID WINAPI _EnterWin16Lock(void);
|
||||
VOID WINAPI _LeaveWin16Lock(void);
|
||||
|
||||
|
||||
INT16 WINAPI AccessResource16(HINSTANCE16,HRSRC16);
|
||||
ATOM WINAPI AddAtom16(LPCSTR);
|
||||
UINT16 WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
|
||||
BOOL16 WINAPI CreateDirectory16(LPCSTR,LPVOID);
|
||||
BOOL16 WINAPI DefineHandleTable16(WORD);
|
||||
ATOM WINAPI DeleteAtom16(ATOM);
|
||||
BOOL16 WINAPI DeleteFile16(LPCSTR);
|
||||
void WINAPI ExitKernel16(void);
|
||||
void WINAPI FatalAppExit16(UINT16,LPCSTR);
|
||||
ATOM WINAPI FindAtom16(LPCSTR);
|
||||
BOOL16 WINAPI FindClose16(HANDLE16);
|
||||
VOID WINAPI FreeLibrary16(HINSTANCE16);
|
||||
HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA);
|
||||
BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA);
|
||||
HRSRC16 WINAPI FindResource16(HINSTANCE16,LPCSTR,LPCSTR);
|
||||
BOOL16 WINAPI FreeModule16(HMODULE16);
|
||||
void WINAPI FreeProcInstance16(FARPROC16);
|
||||
BOOL16 WINAPI FreeResource16(HGLOBAL16);
|
||||
UINT16 WINAPI GetAtomName16(ATOM,LPSTR,INT16);
|
||||
UINT16 WINAPI GetCurrentDirectory16(UINT16,LPSTR);
|
||||
BOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
|
||||
UINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */
|
||||
INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16);
|
||||
DWORD WINAPI GetFileAttributes16(LPCSTR);
|
||||
DWORD WINAPI GetFreeSpace16(UINT16);
|
||||
INT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
|
||||
HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
|
||||
UINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
|
||||
INT16 WINAPI GetPrivateProfileSection16(LPCSTR,LPSTR,UINT16,LPCSTR);
|
||||
WORD WINAPI GetPrivateProfileSectionNames16(LPSTR,UINT16,LPCSTR);
|
||||
INT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16,LPCSTR);
|
||||
BOOL16 WINAPI GetPrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
|
||||
FARPROC16 WINAPI GetProcAddress16(HMODULE16,LPCSTR);
|
||||
UINT16 WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16);
|
||||
INT16 WINAPI GetProfileSection16(LPCSTR,LPSTR,UINT16);
|
||||
WORD WINAPI GetProfileSectionNames16(LPSTR,WORD);
|
||||
INT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16);
|
||||
DWORD WINAPI GetSelectorBase(WORD);
|
||||
BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
|
||||
UINT16 WINAPI GetSystemDirectory16(LPSTR,UINT16);
|
||||
UINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
|
||||
DWORD WINAPI GetVersion16(void);
|
||||
BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*);
|
||||
BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO16,UINT16);
|
||||
UINT16 WINAPI GetWindowsDirectory16(LPSTR,UINT16);
|
||||
HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD);
|
||||
DWORD WINAPI GlobalCompact16(DWORD);
|
||||
LPVOID WINAPI GlobalLock16(HGLOBAL16);
|
||||
WORD WINAPI GlobalFix16(HGLOBAL16);
|
||||
UINT16 WINAPI GlobalFlags16(HGLOBAL16);
|
||||
HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16);
|
||||
DWORD WINAPI GlobalHandle16(WORD);
|
||||
HGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16);
|
||||
DWORD WINAPI GlobalSize16(HGLOBAL16);
|
||||
VOID WINAPI GlobalUnfix16(HGLOBAL16);
|
||||
BOOL16 WINAPI GlobalUnlock16(HGLOBAL16);
|
||||
BOOL16 WINAPI GlobalUnWire16(HGLOBAL16);
|
||||
SEGPTR WINAPI GlobalWire16(HGLOBAL16);
|
||||
WORD WINAPI InitAtomTable16(WORD);
|
||||
BOOL16 WINAPI IsBadCodePtr16(SEGPTR);
|
||||
BOOL16 WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD);
|
||||
BOOL16 WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD);
|
||||
BOOL16 WINAPI IsBadReadPtr16(SEGPTR,UINT16);
|
||||
BOOL16 WINAPI IsBadStringPtr16(SEGPTR,UINT16);
|
||||
BOOL16 WINAPI IsBadWritePtr16(SEGPTR,UINT16);
|
||||
BOOL16 WINAPI IsDBCSLeadByte16(BYTE);
|
||||
HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
|
||||
HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID);
|
||||
HGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16);
|
||||
HLOCAL16 WINAPI LocalAlloc16(UINT16,WORD);
|
||||
UINT16 WINAPI LocalCompact16(UINT16);
|
||||
UINT16 WINAPI LocalFlags16(HLOCAL16);
|
||||
HLOCAL16 WINAPI LocalFree16(HLOCAL16);
|
||||
HLOCAL16 WINAPI LocalHandle16(WORD);
|
||||
SEGPTR WINAPI LocalLock16(HLOCAL16);
|
||||
HLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16);
|
||||
UINT16 WINAPI LocalShrink16(HGLOBAL16,UINT16);
|
||||
UINT16 WINAPI LocalSize16(HLOCAL16);
|
||||
BOOL16 WINAPI LocalUnlock16(HLOCAL16);
|
||||
LPVOID WINAPI LockResource16(HGLOBAL16);
|
||||
HGLOBAL16 WINAPI LockSegment16(HGLOBAL16);
|
||||
FARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16);
|
||||
HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16);
|
||||
DWORD WINAPI RegCloseKey16(HKEY);
|
||||
DWORD WINAPI RegCreateKey16(HKEY,LPCSTR,PHKEY);
|
||||
DWORD WINAPI RegDeleteKey16(HKEY,LPCSTR);
|
||||
DWORD WINAPI RegDeleteValue16(HKEY,LPSTR);
|
||||
DWORD WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD);
|
||||
DWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||
DWORD WINAPI RegOpenKey16(HKEY,LPCSTR,PHKEY);
|
||||
DWORD WINAPI RegQueryValue16(HKEY,LPCSTR,LPSTR,LPDWORD);
|
||||
DWORD WINAPI RegQueryValueEx16(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
|
||||
DWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
|
||||
DWORD WINAPI RegSetValueEx16(HKEY,LPCSTR,DWORD,DWORD,CONST BYTE*,DWORD);
|
||||
BOOL16 WINAPI RemoveDirectory16(LPCSTR);
|
||||
BOOL16 WINAPI SetCurrentDirectory16(LPCSTR);
|
||||
UINT16 WINAPI SetErrorMode16(UINT16);
|
||||
BOOL16 WINAPI SetFileAttributes16(LPCSTR,DWORD);
|
||||
UINT16 WINAPI SetHandleCount16(UINT16);
|
||||
WORD WINAPI SetSelectorBase(WORD,DWORD);
|
||||
LONG WINAPI SetSwapAreaSize16(WORD);
|
||||
BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO16);
|
||||
DWORD WINAPI SizeofResource16(HMODULE16,HRSRC16);
|
||||
void WINAPI UnlockSegment16(HGLOBAL16);
|
||||
BOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR);
|
||||
BOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR);
|
||||
/* Yield16 will only be available from kernel module, use WOWYield instead */
|
||||
VOID WINAPI Yield16(void);
|
||||
SEGPTR WINAPI lstrcat16(SEGPTR,LPCSTR);
|
||||
SEGPTR WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16);
|
||||
SEGPTR WINAPI lstrcpy16(SEGPTR,LPCSTR);
|
||||
SEGPTR WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16);
|
||||
INT16 WINAPI lstrlen16(LPCSTR);
|
||||
HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16);
|
||||
LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
|
||||
LONG WINAPI _hwrite16(HFILE16,LPCSTR,LONG);
|
||||
HFILE16 WINAPI _lcreat16(LPCSTR,INT16);
|
||||
HFILE16 WINAPI _lclose16(HFILE16);
|
||||
LONG WINAPI _llseek16(HFILE16,LONG,INT16);
|
||||
HFILE16 WINAPI _lopen16(LPCSTR,INT16);
|
||||
UINT16 WINAPI _lread16(HFILE16,LPVOID,UINT16);
|
||||
UINT16 WINAPI _lwrite16(HFILE16,LPCSTR,UINT16);
|
||||
BOOL16 WINAPI WritePrivateProfileSection16(LPCSTR,LPCSTR,LPCSTR);
|
||||
BOOL16 WINAPI WritePrivateProfileStruct16(LPCSTR,LPCSTR,LPVOID,UINT16,LPCSTR);
|
||||
BOOL16 WINAPI WriteProfileSection16(LPCSTR,LPCSTR);
|
||||
|
||||
/* Some optimizations */
|
||||
extern inline LPVOID WINAPI MapSL( SEGPTR segptr )
|
||||
{
|
||||
return (char *)wine_ldt_copy.base[SELECTOROF(segptr) >> __AHSHIFT] + OFFSETOF(segptr);
|
||||
}
|
||||
|
||||
#endif /* __WINE_WINE_WINBASE16_H */
|
||||
|
|
|
@ -17,14 +17,18 @@
|
|||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __WINE_WINDEF16_H
|
||||
#define __WINE_WINDEF16_H
|
||||
|
||||
/* #include "windef.h" */
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <exception.h> // ROS Hack
|
||||
/* Standard data types */
|
||||
|
||||
typedef unsigned short BOOL16;
|
||||
|
@ -37,7 +41,20 @@ typedef UINT16 WPARAM16;
|
|||
typedef INT16 *LPINT16;
|
||||
typedef UINT16 *LPUINT16;
|
||||
|
||||
typedef WORD CATCHBUF[9];
|
||||
typedef WORD *LPCATCHBUF;
|
||||
|
||||
#define MAKESEGPTR(seg,off) ((SEGPTR)MAKELONG(off,seg))
|
||||
#define SELECTOROF(ptr) (HIWORD(ptr))
|
||||
#define OFFSETOF(ptr) (LOWORD(ptr))
|
||||
|
||||
typedef WORD *VA_LIST16;
|
||||
|
||||
#define __VA_ROUNDED16(type) \
|
||||
((sizeof(type) + sizeof(WORD) - 1) / sizeof(WORD) * sizeof(WORD))
|
||||
#define VA_ARG16(list,type) \
|
||||
(((list) = (VA_LIST16)((char *)(list) + __VA_ROUNDED16(type))), \
|
||||
*((type *)(void *)((char *)(list) - __VA_ROUNDED16(type))))
|
||||
|
||||
#define HFILE_ERROR16 ((HFILE16)-1)
|
||||
|
||||
|
@ -99,7 +116,7 @@ typedef HANDLE16 HGDIOBJ16;
|
|||
typedef HANDLE16 HGLOBAL16;
|
||||
typedef HANDLE16 HLOCAL16;
|
||||
|
||||
#include "pshpack1.h"
|
||||
#include <pshpack1.h>
|
||||
|
||||
/* The SIZE structure */
|
||||
|
||||
|
@ -127,7 +144,7 @@ typedef struct
|
|||
INT16 bottom;
|
||||
} RECT16, *LPRECT16;
|
||||
|
||||
#include "poppack.h"
|
||||
#include <poppack.h>
|
||||
|
||||
/* Callback function pointers types */
|
||||
|
||||
|
|
Loading…
Reference in a new issue