Subject: [PATCH] include: Add specstrings.h header.

From: Robert Shearman <[email-masked]>
Date: Fri, 15 Feb 2008 22:07:19 +0000

---
 include/Makefile.in   |    1 +
 include/specstrings.h |  267 +++++++++++++++++++++++++++++++++++++++++++++++++
 include/windef.h      |    1 +
 include/winnt.h       |    1 +
 4 files changed, 270 insertions(+), 0 deletions(-)
 create mode 100644 include/specstrings.h

diff --git a/include/Makefile.in b/include/Makefile.in
index 415ac1b..7ef582c 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -382,6 +382,7 @@ SRCDIR_INCLUDES = \
 	slpublic.h \
 	snmp.h \
 	softpub.h \
+	specstrings.h \
 	sql.h \
 	sqlext.h \
 	sqltypes.h \
diff --git a/include/specstrings.h b/include/specstrings.h
new file mode 100644
index 0000000..1199f66
--- /dev/null
+++ b/include/specstrings.h
@@ -0,0 +1,267 @@
+/*
+ * Copyright (C) 2008 Robert Shearman
+ *
+ * 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 __WINE_SPECSTRINGS_H
+#define __WINE_SPECSTRINGS_H
+
+#ifdef _MSC_VER
+# include <sal.h>
+#else
+/* primitives */
+# define __null
+# define __notnull
+# define __maybenull
+# define __readonly
+# define __notreadonly
+# define __maybereadonly
+# define __valid
+# define __notvalid
+# define __maybevalid
+# define __readableTo(extent)
+# define __elem_readableTo(size)
+# define __byte_readableTo(size)
+# define __writableTo(size)
+# define __elem_writableTo(size)
+# define __byte_writableTo(size)
+# define __deref
+# define __pre
+# define __post
+# define __precond(expr)
+# define __postcond(expr)
+# define __exceptthat
+# define __inner_success(expr)
+# define __inner_checkReturn
+# define __inner_typefix(ctype)
+# define __inner_override
+# define __inner_callback
+# define __inner_blocksOn(resource)
+# define __inner_fallthrough_dec
+# define __inner_fallthrough
+# define __refparam
+# define __inner_control_entrypoint(category)
+# define __inner_data_entrypoint(category)
+
+/* higher level */
+# define __ecount(size)
+# define __bcount(size)
+# define __in
+# define __in_ecount(size)
+# define __in_bcount(size)
+# define __in_z
+# define __in_ecount_z(size)
+# define __in_bcount_z(size)
+# define __in_nz
+# define __in_ecount_nz(size)
+# define __in_bcount_nz(size)
+# define __out
+# define __out_ecount(size)
+# define __out_bcount(size)
+# define __out_ecount_part(size,length)
+# define __out_bcount_part(size,length)
+# define __out_ecount_full(size)
+# define __out_bcount_full(size)
+# define __out_z
+# define __out_z_opt
+# define __out_ecount_z(size)
+# define __out_bcount_z(size)
+# define __out_ecount_part_z(size,length)
+# define __out_ecount_part_z(size,length)
+# define __out_ecount_full_z(size)
+# define __out_bcount_full_z(size)
+# define __out_nz
+# define __out_nz_opt
+# define __out_ecount_nz(size)
+# define __out_bcount_nz(size)
+# define __inout
+# define __inout_ecount(size)
+# define __inout_bcount(size)
+# define __inout_ecount_part(size,length)
+# define __inout_bcount_part(size,length)
+# define __inout_ecount_full(size)
+# define __inout_bcount_full(size)
+# define __inout_z
+# define __inout_ecount_z(size)
+# define __inout_bcount_z(size)
+# define __inout_nz
+# define __inout_ecount_nz(size)
+# define __inout_bcount_nz(size)
+# define __ecount_opt(size)
+# define __bcount_opt(size)
+# define __in_opt
+# define __in_ecount_opt(size)
+# define __in_bcount_opt(size)
+# define __in_z_opt
+# define __in_ecount_z_opt(size)
+# define __in_bcount_z_opt(size)
+# define __in_nz_opt
+# define __in_ecount_nz_opt(size)
+# define __in_bcount_nz_opt(size)
+# define __out_opt
+# define __out_ecount_opt(size)
+# define __out_bcount_opt(size)
+# define __out_ecount_part_opt(size,length)
+# define __out_bcount_part_opt(size,length)
+# define __out_ecount_full_opt(size)
+# define __out_bcount_full_opt(size)
+# define __out_ecount_z_opt(size)
+# define __out_bcount_z_opt(size)
+# define __out_ecount_part_z_opt(size,length)
+# define __out_bcount_part_z_opt(size,length)
+# define __out_ecount_full_z_opt(size)
+# define __out_bcount_full_z_opt(size)
+# define __inout_opt
+# define __inout_ecount_opt(size)
+# define __inout_bcount_opt(size)
+# define __inout_ecount_part_opt(size,length)
+# define __inout_bcount_part_opt(size,length)
+# define __inout_ecount_full_opt(size)
+# define __inout_bcount_full_opt(size)
+# define __inout_z_opt
+# define __inout_ecount_z_opt(size)
+# define __inout_bcount_z_opt(size)
+# define __inout_ecount_nz_opt(size)
+# define __inout_bcount_nz_opt(size)
+# define __deref_ecount(size)
+# define __deref_bcount(size)
+# define __deref_out
+# define __deref_out_ecount(size)
+# define __deref_out_bcount(size)
+# define __deref_out_ecount_part(size,length)
+# define __deref_out_bcount_part(size,length)
+# define __deref_out_ecount_full(size)
+# define __deref_out_bcount_full(size)
+# define __deref_out_z
+# define __deref_out_ecount_z(size)
+# define __deref_out_bcount_z(size)
+# define __deref_out_nz
+# define __deref_out_ecount_nz(size)
+# define __deref_out_bcount_nz(size)
+# define __deref_inout
+# define __deref_inout_z
+# define __deref_inout_ecount(size)
+# define __deref_inout_bcount(size)
+# define __deref_inout_ecount_part(size,length)
+# define __deref_inout_bcount_part(size,length)
+# define __deref_inout_ecount_full(size)
+# define __deref_inout_bcount_full(size)
+# define __deref_inout_z
+# define __deref_inout_ecount_z(size)
+# define __deref_inout_bcount_z(size)
+# define __deref_inout_nz
+# define __deref_inout_ecount_nz(size)
+# define __deref_inout_bcount_nz(size)
+# define __deref_ecount_opt(size)
+# define __deref_bcount_opt(size)
+# define __deref_out_opt
+# define __deref_out_ecount_opt(size)
+# define __deref_out_bcount_opt(size)
+# define __deref_out_ecount_part_opt(size,length)
+# define __deref_out_bcount_part_opt(size,length)
+# define __deref_out_ecount_full_opt(size)
+# define __deref_out_bcount_full_opt(size)
+# define __deref_out_z_opt
+# define __deref_out_ecount_z_opt(size)
+# define __deref_out_bcount_z_opt(size)
+# define __deref_out_nz_opt
+# define __deref_out_ecount_nz_opt(size)
+# define __deref_out_bcount_nz_opt(size)
+# define __deref_inout_opt
+# define __deref_inout_ecount_opt(size)
+# define __deref_inout_bcount_opt(size)
+# define __deref_inout_ecount_part_opt(size,length)
+# define __deref_inout_bcount_part_opt(size,length)
+# define __deref_inout_ecount_full_opt(size)
+# define __deref_inout_bcount_full_opt(size)
+# define __deref_inout_z_opt
+# define __deref_inout_ecount_z_opt(size)
+# define __deref_inout_bcount_z_opt(size)
+# define __deref_inout_nz_opt
+# define __deref_inout_ecount_nz_opt(size)
+# define __deref_inout_bcount_nz_opt(size)
+# define __deref_opt_ecount(size)
+# define __deref_opt_bcount(size)
+# define __deref_opt_out
+# define __deref_opt_out_z
+# define __deref_opt_out_ecount(size)
+# define __deref_opt_out_bcount(size)
+# define __deref_opt_out_ecount_part(size,length)
+# define __deref_opt_out_bcount_part(size,length)
+# define __deref_opt_out_ecount_full(size)
+# define __deref_opt_out_bcount_full(size)
+# define __deref_opt_inout
+# define __deref_opt_inout_ecount(size)
+# define __deref_opt_inout_bcount(size)
+# define __deref_opt_inout_ecount_part(size,length)
+# define __deref_opt_inout_bcount_part(size,length)
+# define __deref_opt_inout_ecount_full(size)
+# define __deref_opt_inout_bcount_full(size)
+# define __deref_opt_inout_z
+# define __deref_opt_inout_ecount_z(size)
+# define __deref_opt_inout_bcount_z(size)
+# define __deref_opt_inout_nz
+# define __deref_opt_inout_ecount_nz(size)
+# define __deref_opt_inout_bcount_nz(size)
+# define __deref_opt_ecount_opt(size)
+# define __deref_opt_bcount_opt(size)
+# define __deref_opt_out_opt
+# define __deref_opt_out_ecount_opt(size)
+# define __deref_opt_out_bcount_opt(size)
+# define __deref_opt_out_ecount_part_opt(size,length)
+# define __deref_opt_out_bcount_part_opt(size,length)
+# define __deref_opt_out_ecount_full_opt(size)
+# define __deref_opt_out_bcount_full_opt(size)
+# define __deref_opt_out_z_opt
+# define __deref_opt_out_ecount_z_opt(size)
+# define __deref_opt_out_bcount_z_opt(size)
+# define __deref_opt_out_nz_opt
+# define __deref_opt_out_ecount_nz_opt(size)
+# define __deref_opt_out_bcount_nz_opt(size)
+# define __deref_opt_inout_opt
+# define __deref_opt_inout_ecount_opt(size)
+# define __deref_opt_inout_bcount_opt(size)
+# define __deref_opt_inout_ecount_part_opt(size,length)
+# define __deref_opt_inout_bcount_part_opt(size,length)
+# define __deref_opt_inout_ecount_full_opt(size)
+# define __deref_opt_inout_bcount_full_opt(size)
+# define __deref_opt_inout_z_opt
+# define __deref_opt_inout_ecount_z_opt(size)
+# define __deref_opt_inout_bcount_z_opt(size)
+# define __deref_opt_inout_nz_opt
+# define __deref_opt_inout_ecount_nz_opt(size)
+# define __deref_opt_inout_bcount_nz_opt(size)
+
+/* advanced level */
+# define __success(expr)
+# define __nullterminated
+# define __nullnullterminated
+# define __reserved
+# define __checkReturn
+# define __typefix(ctype)
+# define __override
+# define __callback
+# define __format_string
+# define __blocksOn(res)
+# ifndef __fallthrough
+#  define __fallthrough
+# endif
+# ifndef __analysis_assume
+#  define __analysis_assume(expr)
+# endif
+
+#endif /* _MSC_VER */
+
+#endif
diff --git a/include/windef.h b/include/windef.h
index fd3d423..2b5ba63 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -232,6 +232,7 @@ typedef unsigned int    ULONG,      *PULONG;
 #endif
 
 #include <winnt.h>
+#include <specstrings.h>
 
 /* Polymorphic types */
 
diff --git a/include/winnt.h b/include/winnt.h
index 6fa89dd..c15e847 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -21,6 +21,7 @@
 #ifndef _WINNT_
 #define _WINNT_
 
+#include <specstrings.h>
 #include <basetsd.h>
 #include <guiddef.h>
 
-- 
1.5.4.3