On Fri, 2012-06-01 at 02:45 -0500, Yaakov (Cygwin/X) wrote:
> The attached draft patch fixes most of the issues with the build. (I
> just added the necessary mingw64-i686-* libraries to Ports.) ntdll.h
> needs some more work though; perhaps JonY could provide some input?
Revised patches for mingw-w64-headers SVN HEAD attached.
Yaakov
2012-08-29 Yaakov Selkowitz <[email protected]>
* stdio.h (_mingw_ovr): Use GCC form for both C and C++.
* wchar.h (_mingw_ovr): Ditto.
Index: crt/stdio.h
===================================================================
--- crt/stdio.h (revision 5375)
+++ crt/stdio.h (working copy)
@@ -624,10 +624,10 @@
int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
#undef __mingw_ovr
-#ifdef __cplusplus
-#define __mingw_ovr inline __cdecl
-#elif defined (__GNUC__)
+#if defined (__GNUC__)
#define __mingw_ovr static __attribute__ ((__unused__)) __inline__ __cdecl
+#elif defined(__cplusplus)
+#define __mingw_ovr inline __cdecl
#else
#define __mingw_ovr static __cdecl
#endif
Index: crt/wchar.h
===================================================================
--- crt/wchar.h (revision 5375)
+++ crt/wchar.h (working copy)
@@ -450,10 +450,10 @@
int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
#undef __mingw_ovr
-#ifdef __cplusplus
-#define __mingw_ovr inline __cdecl
-#elif defined (__GNUC__)
+#if defined (__GNUC__)
#define __mingw_ovr static __attribute__ ((__unused__)) __inline__ __cdecl
+#elif defined(__cplusplus)
+#define __mingw_ovr inline __cdecl
#else
#define __mingw_ovr static __cdecl
#endif
2012-08-29 Yaakov Selkowitz <[email protected]>
* ntdef.h (_OBJECT_ATTRIBUTES): Guard against duplicate declaration.
* winnt.h (DECLSPEC_IMPORT): Do not redefine.
(FILE_SUPERSEDE...FILE_MAXIMUM_DISPOSITION): Copy from ntdef.h.
(FILE_DIRECTORY_FILE...FILE_OPEN_FOR_FREE_SPACE_QUERY): Ditto.
(FILE_SHARE_VALID_FLAGS): Ditto.
* winternl.h (_UNICODE_STRING): Guard against duplicate declaration.
(_STRING): Ditto.
(_OBJECT_ATTRIBUTES): Ditto.
(_FILE_LINK_INFORMATION): Copy from ddk/ntifs.h.
Index: include/ntdef.h
===================================================================
--- include/ntdef.h (revision 5375)
+++ include/ntdef.h (working copy)
@@ -509,6 +509,8 @@
/* Object Attributes */
+#ifndef __OBJECT_ATTRIBUTES_DEFINED
+#define __OBJECT_ATTRIBUTES_DEFINED
typedef struct _OBJECT_ATTRIBUTES {
ULONG Length;
HANDLE RootDirectory;
@@ -517,6 +519,7 @@
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+#endif
typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
/* Values for the Attributes member */
Index: include/winnt.h
===================================================================
--- include/winnt.h (revision 5375)
+++ include/winnt.h (working copy)
@@ -88,11 +88,13 @@
#include <basetsd.h>
+#ifndef DECLSPEC_IMPORT
#if defined(_X86_) || defined(__ia64__) || defined(__x86_64)
#define DECLSPEC_IMPORT __declspec(dllimport)
#else
#define DECLSPEC_IMPORT
#endif
+#endif
#ifndef DECLSPEC_NORETURN
#define DECLSPEC_NORETURN __declspec(noreturn)
@@ -3813,9 +3815,43 @@
#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE)
#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE)
+#define FILE_SUPERSEDE 0x00000000
+#define FILE_OPEN 0x00000001
+#define FILE_CREATE 0x00000002
+#define FILE_OPEN_IF 0x00000003
+#define FILE_OVERWRITE 0x00000004
+#define FILE_OVERWRITE_IF 0x00000005
+#define FILE_MAXIMUM_DISPOSITION 0x00000005
+
+#define FILE_DIRECTORY_FILE 0x00000001
+#define FILE_WRITE_THROUGH 0x00000002
+#define FILE_SEQUENTIAL_ONLY 0x00000004
+#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
+#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
+#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
+#define FILE_NON_DIRECTORY_FILE 0x00000040
+#define FILE_CREATE_TREE_CONNECTION 0x00000080
+#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
+#define FILE_NO_EA_KNOWLEDGE 0x00000200
+#define FILE_OPEN_REMOTE_INSTANCE 0x00000400
+#define FILE_RANDOM_ACCESS 0x00000800
+#define FILE_DELETE_ON_CLOSE 0x00001000
+#define FILE_OPEN_BY_FILE_ID 0x00002000
+#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
+#define FILE_NO_COMPRESSION 0x00008000
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+#define FILE_OPEN_REQUIRING_OPLOCK 0x00010000
+#define FILE_DISALLOW_EXCLUSIVE 0x00020000
+#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
+#define FILE_RESERVE_OPFILTER 0x00100000
+#define FILE_OPEN_REPARSE_POINT 0x00200000
+#define FILE_OPEN_NO_RECALL 0x00400000
+#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
+
#define FILE_SHARE_READ 0x00000001
#define FILE_SHARE_WRITE 0x00000002
#define FILE_SHARE_DELETE 0x00000004
+#define FILE_SHARE_VALID_FLAGS 0x00000007
#define FILE_ATTRIBUTE_READONLY 0x00000001
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
Index: include/winternl.h
===================================================================
--- include/winternl.h (revision 5375)
+++ include/winternl.h (working copy)
@@ -16,11 +16,14 @@
extern "C" {
#endif
+#ifndef __UNICODE_STRING_DEFINED
+#define __UNICODE_STRING_DEFINED
typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING;
+#endif
typedef struct _PEB_LDR_DATA {
BYTE Reserved1[8];
@@ -85,11 +88,14 @@
typedef LONG NTSTATUS;
typedef CONST char *PCSZ;
+#ifndef __STRING_DEFINED
+#define __STRING_DEFINED
typedef struct _STRING {
USHORT Length;
USHORT MaximumLength;
PCHAR Buffer;
} STRING;
+#endif
typedef STRING *PSTRING;
typedef STRING ANSI_STRING;
@@ -102,6 +108,8 @@
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
+#ifndef __OBJECT_ATTRIBUTES_DEFINED
+#define __OBJECT_ATTRIBUTES_DEFINED
typedef struct _OBJECT_ATTRIBUTES {
ULONG Length;
#ifdef _WIN64
@@ -116,6 +124,7 @@
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+#endif
/* Values for the Attributes member */
#define OBJ_INHERIT 0x00000002
@@ -348,6 +357,13 @@
ACCESS_MASK AccessFlags;
} FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION;
+ typedef struct _FILE_LINK_INFORMATION {
+ BOOLEAN ReplaceIfExists;
+ HANDLE RootDirectory;
+ ULONG FileNameLength;
+ WCHAR FileName[1];
+ } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
+
typedef struct _FILE_NAME_INFORMATION {
ULONG FileNameLength;
WCHAR FileName[1];
2012-08-29 Yaakov Selkowitz <[email protected]>
* winternl.h (_FILE_RENAME_INFORMATION): Fix member names per MSDN.
(NtQueryInformationFile): Change type of len to ULONG per MSDN.
Index: include/winternl.h
===================================================================
--- include/winternl.h (revision 5375)
+++ include/winternl.h (working copy)
@@ -370,8 +370,8 @@
} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
typedef struct _FILE_RENAME_INFORMATION {
- BOOLEAN Replace;
- HANDLE RootDir;
+ BOOLEAN ReplaceIfExists;
+ HANDLE RootDirectory;
ULONG FileNameLength;
WCHAR FileName[1];
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
@@ -856,7 +856,7 @@
ULONG WINAPI RtlNtStatusToDosError (NTSTATUS Status);
NTSTATUS WINAPI NtQueryInformationProcess(HANDLE ProcessHandle,PROCESSINFOCLASS ProcessInformationClass,PVOID ProcessInformation,ULONG ProcessInformationLength,PULONG ReturnLength);
NTSTATUS WINAPI NtQueryInformationThread(HANDLE ThreadHandle,THREADINFOCLASS ThreadInformationClass,PVOID ThreadInformation,ULONG ThreadInformationLength,PULONG ReturnLength);
- NTSTATUS WINAPI NtQueryInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,LONG len,FILE_INFORMATION_CLASS FileInformationClass);
+ NTSTATUS WINAPI NtQueryInformationFile(HANDLE hFile,PIO_STATUS_BLOCK io,PVOID ptr,ULONG len,FILE_INFORMATION_CLASS FileInformationClass);
NTSTATUS WINAPI NtQueryObject(HANDLE Handle,OBJECT_INFORMATION_CLASS ObjectInformationClass,PVOID ObjectInformation,ULONG ObjectInformationLength,PULONG ReturnLength);
NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass,PVOID SystemInformation,ULONG SystemInformationLength,PULONG ReturnLength);
NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER SystemTime);
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public