aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sys/_types.h')
-rw-r--r--sys/sys/_types.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/sys/_types.h b/sys/sys/_types.h
index 461636dba4f0..8ecf9d059239 100644
--- a/sys/sys/_types.h
+++ b/sys/sys/_types.h
@@ -123,6 +123,21 @@ typedef union {
typedef __uintmax_t __rman_res_t;
/*
+ * Types for varargs. These are all provided by builtin types these
+ * days, so centralize their definition.
+ */
+#ifdef __GNUCLIKE_BUILTIN_VARARGS
+typedef __builtin_va_list __va_list; /* internally known to gcc */
+#else
+#error "No support for your compiler for stdargs"
+#endif
+#if defined(__GNUC_VA_LIST_COMPATIBILITY) && !defined(__GNUC_VA_LIST) \
+ && !defined(__NO_GNUC_VA_LIST)
+#define __GNUC_VA_LIST
+typedef __va_list __gnuc_va_list; /* compatibility w/GNU headers*/
+#endif
+
+/*
* When the following macro is defined, the system uses 64-bit inode numbers.
* Programs can use this to avoid including <sys/param.h>, with its associated
* namespace pollution.