From: Jacek Caban jacek@codeweavers.com
--- include/winuser.h | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/include/winuser.h b/include/winuser.h index bc65e8a19d0..f9e2d49b528 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -2104,24 +2104,42 @@ typedef struct tagMONITORINFO DWORD dwFlags; } MONITORINFO, *LPMONITORINFO;
-typedef struct tagMONITORINFOEXA +#ifdef __cplusplus + +struct tagMONITORINFOEXA : public tagMONITORINFO +{ + CHAR szDevice[CCHDEVICENAME]; +}; + +struct tagMONITORINFOEXW : public tagMONITORINFO +{ + WCHAR szDevice[CCHDEVICENAME]; +}; + +#else + +struct tagMONITORINFOEXA { /* the 4 first entries are the same as MONITORINFO */ DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; CHAR szDevice[CCHDEVICENAME]; -} MONITORINFOEXA, *LPMONITORINFOEXA; +};
-typedef struct tagMONITORINFOEXW +struct tagMONITORINFOEXW { /* the 4 first entries are the same as MONITORINFO */ DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; WCHAR szDevice[CCHDEVICENAME]; -} MONITORINFOEXW, *LPMONITORINFOEXW; +}; + +#endif
+typedef struct tagMONITORINFOEXA MONITORINFOEXA, *LPMONITORINFOEXA; +typedef struct tagMONITORINFOEXW MONITORINFOEXW, *LPMONITORINFOEXW; DECL_WINELIB_TYPE_AW(MONITORINFOEX) DECL_WINELIB_TYPE_AW(LPMONITORINFOEX)
From: Jacek Caban jacek@codeweavers.com
--- include/msvcrt/math.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h index 867d2132c86..632bd8cac31 100644 --- a/include/msvcrt/math.h +++ b/include/msvcrt/math.h @@ -303,6 +303,7 @@ inline bool signbit(long double x) throw() { return _ldsign(x) != 0; } template <class T> inline bool isfinite(T x) throw() { return fpclassify(x) <= 0; } template <class T> inline bool isinf(T x) throw() { return fpclassify(x) == FP_INFINITE; } template <class T> inline bool isnan(T x) throw() { return fpclassify(x) == FP_NAN; } +template <class T> inline bool isnormal(T x) throw() { return fpclassify(x) == FP_NORMAL; } } /* extern "C++" */
#elif _MSVCR_VER >= 120
From: Jacek Caban jacek@codeweavers.com
--- include/Makefile.in | 1 + include/minwindef.h | 340 ++++++++++++++++++++++++++++++++++++++++++++ include/windef.h | 256 +-------------------------------- 3 files changed, 343 insertions(+), 254 deletions(-) create mode 100644 include/minwindef.h
diff --git a/include/Makefile.in b/include/Makefile.in index 5938a0b05ba..2b9e6d14c19 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -458,6 +458,7 @@ SOURCES = \ minidumpapiset.h \ minmax.h \ minschannel.h \ + minwindef.h \ mlang.idl \ mmc.idl \ mmddk.h \ diff --git a/include/minwindef.h b/include/minwindef.h new file mode 100644 index 00000000000..c3f99a9bbdd --- /dev/null +++ b/include/minwindef.h @@ -0,0 +1,340 @@ +/* + * Basic types definitions + * + * Copyright 1996 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This 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 + * Lesser General Public License for more details. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _MINWINDEF_ +#define _MINWINDEF_ + +#include <minwindef.h> + +#ifndef NO_STRICT +# ifndef STRICT +# define STRICT +# endif /* STRICT */ +#endif /* NO_STRICT */ + +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Calling conventions definitions */ + +#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64) +#define _WIN64 +#endif + +#ifndef _WIN64 +# if defined(__i386__) && !defined(_X86_) +# define _X86_ +# endif +# if defined(_X86_) && !defined(__i386__) +# define __i386__ +# endif +#endif + +#if !defined(_MSC_VER) && !defined(__MINGW32__) + +#undef __stdcall +#undef __cdecl +#undef __fastcall +#undef __thiscall + +#ifdef WINE_UNIX_LIB +# define __stdcall +# define __cdecl +#else +# if defined(__i386__) && defined(__GNUC__) +# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__) +# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__)) +# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__)) +# else +# define __stdcall __attribute__((__stdcall__)) +# define __cdecl __attribute__((__cdecl__)) +# endif +# elif defined(__x86_64__) && defined(__GNUC__) +# if __has_attribute(__force_align_arg_pointer__) +# define __stdcall __attribute__((ms_abi)) __attribute__((__force_align_arg_pointer__)) +# else +# define __stdcall __attribute__((ms_abi)) +# endif +# define __cdecl __stdcall +# define __ms_va_list __builtin_ms_va_list +# else +# define __stdcall +# define __cdecl +# endif +# define __fastcall __stdcall +# define __thiscall __stdcall +#endif /* WINE_UNIX_LIB */ + +#endif /* _MSC_VER || __MINGW32__ */ + +#if !defined(__ms_va_list) && !defined(WINE_UNIX_LIB) +# define __ms_va_list va_list +#endif + +#ifdef __WINESRC__ +#define __ONLY_IN_WINELIB(x) do_not_use_this_in_wine +#else +#define __ONLY_IN_WINELIB(x) x +#endif + +#ifndef _MSC_VER +#ifndef _stdcall +#define _stdcall __ONLY_IN_WINELIB(__stdcall) +#endif +#ifndef _fastcall +#define _fastcall __ONLY_IN_WINELIB(__stdcall) +#endif +#ifndef cdecl +#define cdecl __ONLY_IN_WINELIB(__cdecl) +#endif +#ifndef _cdecl +#define _cdecl __ONLY_IN_WINELIB(__cdecl) +#endif +#endif /* _MSC_VER */ + +#ifndef pascal +#define pascal __ONLY_IN_WINELIB(__stdcall) +#endif +#ifndef _pascal +#define _pascal __ONLY_IN_WINELIB(__stdcall) +#endif +#ifndef __export +#define __export __ONLY_IN_WINELIB(__stdcall) +#endif +#ifndef near +#define near __ONLY_IN_WINELIB(/* nothing */) +#endif +#ifndef far +#define far __ONLY_IN_WINELIB(/* nothing */) +#endif +#ifndef _near +#define _near __ONLY_IN_WINELIB(/* nothing */) +#endif +#ifndef _far +#define _far __ONLY_IN_WINELIB(/* nothing */) +#endif +#ifndef NEAR +#define NEAR __ONLY_IN_WINELIB(/* nothing */) +#endif +#ifndef FAR +#define FAR __ONLY_IN_WINELIB(/* nothing */) +#endif + +#ifndef _MSC_VER +# ifndef _declspec +# define _declspec(x) __ONLY_IN_WINELIB(/* nothing */) +# endif +# ifndef __declspec +# define __declspec(x) __ONLY_IN_WINELIB(/* nothing */) +# endif +#endif + +#ifdef _MSC_VER +# define inline __inline +#endif + +#define CALLBACK __stdcall +#define WINAPI __stdcall +#define APIPRIVATE __stdcall +#define PASCAL __stdcall +#define CDECL __cdecl +#define _CDECL __cdecl +#define APIENTRY WINAPI +#define CONST __ONLY_IN_WINELIB(const) +#ifndef WINAPIV +# define WINAPIV CDECL +#endif + +/* Misc. constants. */ + +#undef NULL +#ifdef __cplusplus +#ifndef _WIN64 +#define NULL 0 +#else +#define NULL 0LL +#endif +#else +#define NULL ((void*)0) +#endif + +#ifdef FALSE +#undef FALSE +#endif +#define FALSE 0 + +#ifdef TRUE +#undef TRUE +#endif +#define TRUE 1 + +#ifndef IN +#define IN +#endif + +#ifndef OUT +#define OUT +#endif + +#ifndef OPTIONAL +#define OPTIONAL +#endif + +/* Standard data types */ + +#ifndef BASETYPES +#define BASETYPES +typedef unsigned char UCHAR, *PUCHAR; +typedef unsigned short USHORT, *PUSHORT; +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) +typedef unsigned long ULONG, *PULONG; +#else +typedef unsigned int ULONG, *PULONG; +#endif +#endif + +typedef void *LPVOID; +typedef const void *LPCVOID; +typedef int BOOL, *PBOOL, *LPBOOL; +typedef unsigned char BYTE, *PBYTE, *LPBYTE; +typedef unsigned short WORD, *PWORD, *LPWORD; +typedef int INT, *PINT, *LPINT; +typedef unsigned int UINT, *PUINT; +typedef float FLOAT, *PFLOAT; +typedef char *PSZ; +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) +typedef long *LPLONG; +typedef unsigned long DWORD, *PDWORD, *LPDWORD; +#else +typedef int *LPLONG; +typedef unsigned int DWORD, *PDWORD, *LPDWORD; +#endif + +/* Macros to map Winelib names to the correct implementation name */ +/* Note that Winelib is purely Win32. */ + +#ifdef __WINESRC__ +#define WINE_NO_UNICODE_MACROS 1 +#endif + +#ifdef WINE_NO_UNICODE_MACROS +# define WINELIB_NAME_AW(func) \ + func##_must_be_suffixed_with_W_or_A_in_this_context \ + func##_must_be_suffixed_with_W_or_A_in_this_context +#else /* WINE_NO_UNICODE_MACROS */ +# ifdef UNICODE +# define WINELIB_NAME_AW(func) func##W +# else +# define WINELIB_NAME_AW(func) func##A +# endif +#endif /* WINE_NO_UNICODE_MACROS */ + +#ifdef WINE_NO_UNICODE_MACROS +# define DECL_WINELIB_TYPE_AW(type) /* nothing */ +#else +# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; +#endif + +#include <winnt.h> + +/* Polymorphic types */ + +typedef UINT_PTR WPARAM; +typedef LONG_PTR LPARAM; +typedef LONG_PTR LRESULT; + +typedef WORD ATOM; + +/* Handle types */ + +typedef int HFILE; +DECLARE_HANDLE(HINSTANCE); +DECLARE_HANDLE(HKEY); +typedef HKEY *PHKEY; +DECLARE_HANDLE(HKL); +DECLARE_HANDLE(HMETAFILE); +DECLARE_HANDLE(HRGN); +DECLARE_HANDLE(HRSRC); +DECLARE_HANDLE(HTASK); +DECLARE_HANDLE(HWINSTA); + +/* Handle types that must remain interchangeable even with strict on */ + +typedef HINSTANCE HMODULE; +typedef HANDLE HGLOBAL; +typedef HANDLE HLOCAL; +typedef HANDLE GLOBALHANDLE; +typedef HANDLE LOCALHANDLE; + +/* Callback function pointers types */ + +#ifndef WINE_NO_STRICT_PROTOTYPES +typedef INT_PTR (CALLBACK *FARPROC)(void); +typedef INT_PTR (CALLBACK *NEARPROC)(void); +typedef INT_PTR (CALLBACK *PROC)(void); +#else +typedef INT_PTR (CALLBACK *FARPROC)(); +typedef INT_PTR (CALLBACK *NEARPROC)(); +typedef INT_PTR (CALLBACK *PROC)(); +#endif + +/* Macros to split words and longs. */ + +#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xFF)) +#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8)) + +#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xFFFF)) +#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16)) + +#define MAKEWORD(low,high) ((WORD)(((BYTE)((DWORD_PTR)(low) & 0xFF)) | ((WORD)((BYTE)((DWORD_PTR)(high) & 0xFF))) << 8)) +#define MAKELONG(low,high) ((LONG)(((WORD)((DWORD_PTR)(low) & 0xFFFF)) | ((DWORD)((WORD)((DWORD_PTR)(high) & 0xFFFF))) << 16)) + +/* min and max macros */ +#ifndef NOMINMAX +#ifndef max +#define max(a,b) (((a) > (b)) ? (a) : (b)) +#endif +#ifndef min +#define min(a,b) (((a) < (b)) ? (a) : (b)) +#endif +#endif /* NOMINMAX */ + +#ifdef MAX_PATH /* Work-around for Mingw */ +#undef MAX_PATH +#endif /* MAX_PATH */ + +#define MAX_PATH 260 + +typedef struct _FILETIME { + DWORD dwLowDateTime; + DWORD dwHighDateTime; +} FILETIME, *PFILETIME, *LPFILETIME; +#define _FILETIME_ + +#ifdef __cplusplus +} +#endif + +#endif /* _MINWINDEF_ */ diff --git a/include/windef.h b/include/windef.h index 0a6d308b837..12b3e5be57a 100644 --- a/include/windef.h +++ b/include/windef.h @@ -21,255 +21,18 @@ #ifndef _WINDEF_ #define _WINDEF_
+#include <minwindef.h> + #ifndef WINVER #define WINVER 0x0500 #endif
-#ifndef NO_STRICT -# ifndef STRICT -# define STRICT -# endif /* STRICT */ -#endif /* NO_STRICT */ - -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif - #ifdef __cplusplus extern "C" { #endif
-/* Calling conventions definitions */ - -#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64) -#define _WIN64 -#endif - -#ifndef _WIN64 -# if defined(__i386__) && !defined(_X86_) -# define _X86_ -# endif -# if defined(_X86_) && !defined(__i386__) -# define __i386__ -# endif -#endif - -#if !defined(_MSC_VER) && !defined(__MINGW32__) - -#undef __stdcall -#undef __cdecl -#undef __fastcall -#undef __thiscall - -#ifdef WINE_UNIX_LIB -# define __stdcall -# define __cdecl -#else -# if defined(__i386__) && defined(__GNUC__) -# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__) -# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__)) -# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__)) -# else -# define __stdcall __attribute__((__stdcall__)) -# define __cdecl __attribute__((__cdecl__)) -# endif -# elif defined(__x86_64__) && defined(__GNUC__) -# if __has_attribute(__force_align_arg_pointer__) -# define __stdcall __attribute__((ms_abi)) __attribute__((__force_align_arg_pointer__)) -# else -# define __stdcall __attribute__((ms_abi)) -# endif -# define __cdecl __stdcall -# define __ms_va_list __builtin_ms_va_list -# else -# define __stdcall -# define __cdecl -# endif -# define __fastcall __stdcall -# define __thiscall __stdcall -#endif /* WINE_UNIX_LIB */ - -#endif /* _MSC_VER || __MINGW32__ */ - -#if !defined(__ms_va_list) && !defined(WINE_UNIX_LIB) -# define __ms_va_list va_list -#endif - -#ifdef __WINESRC__ -#define __ONLY_IN_WINELIB(x) do_not_use_this_in_wine -#else -#define __ONLY_IN_WINELIB(x) x -#endif - -#ifndef _MSC_VER -#ifndef _stdcall -#define _stdcall __ONLY_IN_WINELIB(__stdcall) -#endif -#ifndef _fastcall -#define _fastcall __ONLY_IN_WINELIB(__stdcall) -#endif -#ifndef cdecl -#define cdecl __ONLY_IN_WINELIB(__cdecl) -#endif -#ifndef _cdecl -#define _cdecl __ONLY_IN_WINELIB(__cdecl) -#endif -#endif /* _MSC_VER */ - -#ifndef pascal -#define pascal __ONLY_IN_WINELIB(__stdcall) -#endif -#ifndef _pascal -#define _pascal __ONLY_IN_WINELIB(__stdcall) -#endif -#ifndef __export -#define __export __ONLY_IN_WINELIB(__stdcall) -#endif -#ifndef near -#define near __ONLY_IN_WINELIB(/* nothing */) -#endif -#ifndef far -#define far __ONLY_IN_WINELIB(/* nothing */) -#endif -#ifndef _near -#define _near __ONLY_IN_WINELIB(/* nothing */) -#endif -#ifndef _far -#define _far __ONLY_IN_WINELIB(/* nothing */) -#endif -#ifndef NEAR -#define NEAR __ONLY_IN_WINELIB(/* nothing */) -#endif -#ifndef FAR -#define FAR __ONLY_IN_WINELIB(/* nothing */) -#endif - -#ifndef _MSC_VER -# ifndef _declspec -# define _declspec(x) __ONLY_IN_WINELIB(/* nothing */) -# endif -# ifndef __declspec -# define __declspec(x) __ONLY_IN_WINELIB(/* nothing */) -# endif -#endif - -#ifdef _MSC_VER -# define inline __inline -#endif - -#define CALLBACK __stdcall -#define WINAPI __stdcall -#define APIPRIVATE __stdcall -#define PASCAL __stdcall -#define CDECL __cdecl -#define _CDECL __cdecl -#define APIENTRY WINAPI -#define CONST __ONLY_IN_WINELIB(const) -#ifndef WINAPIV -# define WINAPIV CDECL -#endif - -/* Misc. constants. */ - -#undef NULL -#ifdef __cplusplus -#ifndef _WIN64 -#define NULL 0 -#else -#define NULL 0LL -#endif -#else -#define NULL ((void*)0) -#endif - -#ifdef FALSE -#undef FALSE -#endif -#define FALSE 0 - -#ifdef TRUE -#undef TRUE -#endif -#define TRUE 1 - -#ifndef IN -#define IN -#endif - -#ifndef OUT -#define OUT -#endif - -#ifndef OPTIONAL -#define OPTIONAL -#endif - -/* Standard data types */ - -#ifndef BASETYPES -#define BASETYPES -typedef unsigned char UCHAR, *PUCHAR; -typedef unsigned short USHORT, *PUSHORT; -#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) -typedef unsigned long ULONG, *PULONG; -#else -typedef unsigned int ULONG, *PULONG; -#endif -#endif - -typedef void *LPVOID; -typedef const void *LPCVOID; -typedef int BOOL, *PBOOL, *LPBOOL; -typedef unsigned char BYTE, *PBYTE, *LPBYTE; -typedef unsigned short WORD, *PWORD, *LPWORD; -typedef int INT, *PINT, *LPINT; -typedef unsigned int UINT, *PUINT; -typedef float FLOAT, *PFLOAT; -typedef char *PSZ; -#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) -typedef long *LPLONG; -typedef unsigned long DWORD, *PDWORD, *LPDWORD; -#else -typedef int *LPLONG; -typedef unsigned int DWORD, *PDWORD, *LPDWORD; -#endif - -/* Macros to map Winelib names to the correct implementation name */ -/* Note that Winelib is purely Win32. */ - -#ifdef __WINESRC__ -#define WINE_NO_UNICODE_MACROS 1 -#endif - -#ifdef WINE_NO_UNICODE_MACROS -# define WINELIB_NAME_AW(func) \ - func##_must_be_suffixed_with_W_or_A_in_this_context \ - func##_must_be_suffixed_with_W_or_A_in_this_context -#else /* WINE_NO_UNICODE_MACROS */ -# ifdef UNICODE -# define WINELIB_NAME_AW(func) func##W -# else -# define WINELIB_NAME_AW(func) func##A -# endif -#endif /* WINE_NO_UNICODE_MACROS */ - -#ifdef WINE_NO_UNICODE_MACROS -# define DECL_WINELIB_TYPE_AW(type) /* nothing */ -#else -# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; -#endif - -#include <winnt.h> - -/* Polymorphic types */ - -typedef UINT_PTR WPARAM; -typedef LONG_PTR LPARAM; -typedef LONG_PTR LRESULT; - /* Integer types */
-typedef WORD ATOM; typedef DWORD COLORREF, *LPCOLORREF;
@@ -288,20 +51,11 @@ DECLARE_HANDLE(HFONT); DECLARE_HANDLE(HGLRC); DECLARE_HANDLE(HHOOK); DECLARE_HANDLE(HICON); -DECLARE_HANDLE(HINSTANCE); -DECLARE_HANDLE(HKEY); -typedef HKEY *PHKEY; -DECLARE_HANDLE(HKL); DECLARE_HANDLE(HMENU); -DECLARE_HANDLE(HMETAFILE); DECLARE_HANDLE(HMONITOR); DECLARE_HANDLE(HPALETTE); DECLARE_HANDLE(HPEN); -DECLARE_HANDLE(HRGN); -DECLARE_HANDLE(HRSRC); -DECLARE_HANDLE(HTASK); DECLARE_HANDLE(HWINEVENTHOOK); -DECLARE_HANDLE(HWINSTA); DECLARE_HANDLE(HWND);
/* Handle types that must remain interchangeable even with strict on */ @@ -384,12 +138,6 @@ typedef struct tagPOINTS SHORT y; } POINTS, *PPOINTS, *LPPOINTS;
-typedef struct _FILETIME { - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} FILETIME, *PFILETIME, *LPFILETIME; -#define _FILETIME_ - /* The RECT structure */ typedef struct tagRECT {
From: Jacek Caban jacek@codeweavers.com
--- include/Makefile.in | 1 + include/fibersapi.h | 38 ++++++++++++++++++++++++++++++++++++++ include/winbase.h | 5 +---- 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 include/fibersapi.h
diff --git a/include/Makefile.in b/include/Makefile.in index 2b9e6d14c19..3ade3fa9e6f 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -326,6 +326,7 @@ SOURCES = \ fci.h \ fdi.h \ featurestagingapi.h \ + fibersapi.h \ fileapi.h \ filter.idl \ fltdefs.h \ diff --git a/include/fibersapi.h b/include/fibersapi.h new file mode 100644 index 00000000000..93ce2eb6b4f --- /dev/null +++ b/include/fibersapi.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) the Wine project + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This 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 + * Lesser General Public License for more details. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _FIBERS_H_ +#define _FIBERS_H_ + +#include <minwindef.h> + +#ifdef __cplusplus +extern "C" { +#endif + +WINBASEAPI DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION); +WINBASEAPI BOOL WINAPI FlsFree(DWORD); +WINBASEAPI void *WINAPI FlsGetValue(DWORD); +WINBASEAPI BOOL WINAPI FlsSetValue(DWORD,void*); +WINBASEAPI BOOL WINAPI IsThreadAFiber(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _FIBERS_H_ */ diff --git a/include/winbase.h b/include/winbase.h index 6f609176148..772000be4a1 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -47,6 +47,7 @@ extern "C" { #include <threadpoolapiset.h> #include <memoryapi.h> #include <realtimeapiset.h> +#include <fibersapi.h>
/* Windows Exit Procedure flag values */ #define WEP_FREE_DLL 0 @@ -2143,10 +2144,6 @@ WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW(HANDLE,LPWSTR,DWORD); #define FindNextVolumeMountPoint WINELIB_NAME_AW(FindNextVolumeMountPoint) WINBASEAPI BOOL WINAPI FindVolumeClose(HANDLE); WINBASEAPI BOOL WINAPI FindVolumeMountPointClose(HANDLE); -WINBASEAPI DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION); -WINBASEAPI BOOL WINAPI FlsFree(DWORD); -WINBASEAPI PVOID WINAPI FlsGetValue(DWORD); -WINBASEAPI BOOL WINAPI FlsSetValue(DWORD,PVOID); WINBASEAPI BOOL WINAPI FlushFileBuffers(HANDLE); WINBASEAPI BOOL WINAPI FlushInstructionCache(HANDLE,LPCVOID,SIZE_T); WINBASEAPI VOID WINAPI FlushProcessWriteBuffers(void);