summaryrefslogtreecommitdiff
path: root/ace/os_include/stddef.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/os_include/stddef.h')
-rw-r--r--ace/os_include/stddef.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/ace/os_include/stddef.h b/ace/os_include/stddef.h
new file mode 100644
index 00000000000..38ee9b10207
--- /dev/null
+++ b/ace/os_include/stddef.h
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file stddef.h
+ *
+ * standard type definitions
+ *
+ * $Id$
+ *
+ * @author Don Hinton <dhinton@ieee.org>
+ * @author This code was originally in various places including ace/OS.h.
+ */
+//=============================================================================
+
+// From http://www.UNIX-systems.org/single_unix_specification/
+
+#ifndef ACE_OS_INCLUDE_STDDEF_H
+#define ACE_OS_INCLUDE_STDDEF_H
+
+#include "ace/pre.h"
+
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+// @todo move this to a windows config file
+// Add new macro ACE_LACKS_STDDEF_H
+#if defined (ACE_HAS_WINCE) && _WIN32_WCE < 400
+# if !define (ACE_LACKS_STDDEF_H)
+# define ACE_LACKS_STDDEF_H
+# define ACE_LACKS_PTRDIFF_T
+# endif /* !ACE_LACKS_STDDEF_H */
+#endif /* ACE_HAS_WINCE && _WIN32_WCE < 400 */
+
+#if !defined (ACE_LACKS_STDDEF_H)
+# include /**/ <stddef.h>
+#endif /* !ACE_LACKS_STDDEF_H */
+
+// NULL pointer constant
+#if defined (ACE_LACKS_NULL)
+# undef NULL
+# if defined(__cplusplus)
+# define NULL 0
+# else
+# define NULL ((void *)0)
+# endif
+#endif /* ACE_LACKS_NULL */
+
+/*
+ Integer constant expression of type size_t, the value of which is the offset
+ in bytes to the structure member (member-designator), from the beginning of
+ its structure (type).
+*/
+#if defined (ACE_LACKS_OFFSETOF)
+# undef offsetof
+# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif /* ACE_LACKS_OFFSETOF */
+
+// Signed integer type of the result of subtracting two pointers.
+#if defined (ACE_LACKS_PTRDIFF_T)
+# if !defined (ACE_PTRDIFF_T_TYPE)
+# define ACE_PTRDIFF_T_TYPE unsigned long
+# endif /* !ACE_PTRDIFF_T_TYPE */
+typedef ACE_PTRDIFF_T_TYPE ptrdiff_t;
+#endif /* ACE_LACKS_PTRDIFF_T */
+
+/*
+ Integer type whose range of values can represent distinct wide-character
+ codes for all members of the largest character set specified among the
+ locales supported by the compilation environment: the null character has
+ the code value 0 and each member of the portable character set has a code
+ value equal to its value when used as the lone character in an integer
+ character constant.
+*/
+#if defined (ACE_LACKS_WCHAR_T)
+# if !defined (ACE_WCHAR_T_TYPE)
+# define ACE_WCHAR_T_TYPE long;
+# endif /* !ACE_WCHAR_T_TYPE */
+typedef ACE_WCHAR_T_TYPE wchar_t;
+#endif /* ACE_LACKS_WCHAR_T */
+
+// Unsigned integer type of the result of the sizeof operator.
+#if defined (ACE_LACKS_SIZE_T)
+# if !defined (ACE_SIZE_T_TYPE)
+# define ACE_SIZE_T_TYPE unsigned int;
+# endif /* !ACE_SIZE_T_TYPE */
+typedef ACE_SIZE_T_TYPE size_t;
+#endif /* ACE_LACKS_SIZE_T */
+
+#endif /* ACE_OS_INCLUDE_STDDEF_H */