Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorDimitri Papadopoulos <dimitri_at@users.sf.net>2006-04-19 12:40:53 +0400
committerDimitri Papadopoulos <dimitri_at@users.sf.net>2006-04-19 12:40:53 +0400
commitcb784c89505c6f45ec0a90a6d6e84ee6f4c76aaf (patch)
tree85f4f83af79a3805312ac98cc5d31da3bc94cab1 /winsup
parenta2601182c0fe00b483ff82c0dcea7f71c41e8eac (diff)
* include/winnt.h, include/ddk/winddk.h (FIELD_OFFSET):
Compile with recent C++ compiler such as gcc 3.4. * include/ddk/winddk.h: Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/w32api/ChangeLog6
-rw-r--r--winsup/w32api/include/ddk/winddk.h5
-rw-r--r--winsup/w32api/include/winnt.h5
3 files changed, 16 insertions, 0 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index 2c1df14c4..91b930b07 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,5 +1,11 @@
2006-04-19 Dimitri Papadopoulos <papadopo@users.sourceforge.net>
+ * include/winnt.h, include/ddk/winddk.h (FIELD_OFFSET):
+ Compile with recent C++ compiler such as gcc 3.4.
+ * include/ddk/winddk.h: Ditto.
+
+2006-04-19 Dimitri Papadopoulos <papadopo@users.sourceforge.net>
+
* include/winuser.h (CharNextEx,CharNextExW,CharPrevEx,CharPrevExW):
Delete. Only CharNextExA and CharPrevExA are documented in MSDN.
Thanks to: David Golub <david_golub at sf dot net>
diff --git a/winsup/w32api/include/ddk/winddk.h b/winsup/w32api/include/ddk/winddk.h
index 123a44a73..c9dabbb52 100644
--- a/winsup/w32api/include/ddk/winddk.h
+++ b/winsup/w32api/include/ddk/winddk.h
@@ -3967,9 +3967,14 @@ KefReleaseSpinLockFromDpcLevel(
* IN PCHAR Field);
*/
#ifndef FIELD_OFFSET
+#ifdef __cplusplus
+#define FIELD_OFFSET(Type, Field) (reinterpret_cast<LONG> \
+ (&reinterpret_cast<char&>(static_cast<Type *>(0)->Field)))
+#else
#define FIELD_OFFSET(Type, Field) \
((LONG) (&(((Type *) 0)->Field)))
#endif
+#endif
/*
* PVOID
diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h
index e6f071d79..219d99055 100644
--- a/winsup/w32api/include/winnt.h
+++ b/winsup/w32api/include/winnt.h
@@ -845,7 +845,12 @@ typedef DWORD FLONG;
#define RTL_CRITSECT_TYPE 0
#define RTL_RESOURCE_TYPE 1
/* Also in winddk.h */
+#ifdef __cplusplus
+#define FIELD_OFFSET(t,f) (reinterpret_cast<LONG> \
+ (&reinterpret_cast<char&>(static_cast<t*>(0)->f)))
+#else
#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
+#endif
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) \
((type*)((PCHAR)(address) - (PCHAR)(&((type *)0)->field)))