aboutsummaryrefslogtreecommitdiff
path: root/sys/sparc64/include/stdarg.h
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-02-12 14:48:05 +0000
committerWarner Losh <imp@FreeBSD.org>2018-02-12 14:48:05 +0000
commit33e959abab3e023b06f1248d4e566c13517a0450 (patch)
treee19eb3a66dcee85db981941d7b6a8c38129a93b4 /sys/sparc64/include/stdarg.h
parent58a6aaf7ec41aa4ea4f3d8d752a8f03f4432bc25 (diff)
downloadsrc-33e959abab3e023b06f1248d4e566c13517a0450.tar.gz
src-33e959abab3e023b06f1248d4e566c13517a0450.zip
Use standard pattern for stdargs.h
We don't support older compilers. Most of the code in these files is for pre-3.0 gcc, which is at least 15 years obsolete. Move to using phk's sys/_stdargs.h for all these platforms. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D14323
Notes
Notes: svn path=/head/; revision=329163
Diffstat (limited to 'sys/sparc64/include/stdarg.h')
-rw-r--r--sys/sparc64/include/stdarg.h78
1 files changed, 7 insertions, 71 deletions
diff --git a/sys/sparc64/include/stdarg.h b/sys/sparc64/include/stdarg.h
index d151f1934787..acb526429ac2 100644
--- a/sys/sparc64/include/stdarg.h
+++ b/sys/sparc64/include/stdarg.h
@@ -1,18 +1,7 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2002 David E. O'Brien. All rights reserved.
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Lawrence Berkeley Laboratory.
+ * Copyright (c) 2017 Poul-Henning Kamp. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,10 +12,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
@@ -35,69 +24,16 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)stdarg.h 8.2 (Berkeley) 9/27/93
- * $NetBSD: stdarg.h,v 1.11 2000/07/23 21:36:56 mycroft Exp $
* $FreeBSD$
*/
#ifndef _MACHINE_STDARG_H_
#define _MACHINE_STDARG_H_
-#include <sys/cdefs.h>
-#include <sys/_types.h>
-
-#ifndef _VA_LIST_DECLARED
-#define _VA_LIST_DECLARED
-typedef __va_list va_list;
-#endif
-
-#ifdef __GNUCLIKE_BUILTIN_STDARG
-
-#define va_start(ap, last) \
- __builtin_va_start((ap), (last))
-
-#define va_arg(ap, type) \
- __builtin_va_arg((ap), type)
-
-#if __ISO_C_VISIBLE >= 1999
-#define va_copy(dest, src) \
- __builtin_va_copy((dest), (src))
-#endif
-
-#define va_end(ap) \
- __builtin_va_end(ap)
+#include <sys/_stdarg.h>
-#else /* ! __GNUCLIKE_BUILTIN_STDARG */
-
-#if !defined(__GNUCLIKE_BUILTIN_NEXT_ARG) && !defined(lint)
-#error no support for your compiler
+#ifndef va_start
+ #error this file needs to be ported to your compiler
#endif
-#define va_start(ap, last) \
- (__builtin_next_arg(last), (ap) = (va_list)__builtin_saveregs())
-
-#define va_end(ap)
-
-#define __va_arg8(ap, type) \
- (*(type *)(void *)((ap) += 8, (ap) - 8))
-#define __va_arg16(ap, type) \
- (*(type *)(void *)((ap) = (va_list)(((unsigned long)(ap) + 31) & -16),\
- (ap) - 16))
-#define __va_int(ap, type) \
- (*(type *)(void *)((ap) += 8, (ap) - sizeof(type)))
-
-#define __REAL_TYPE_CLASS 8
-#define __RECORD_TYPE_CLASS 12
-#define va_arg(ap, type) \
- (__builtin_classify_type(*(type *)0) == __REAL_TYPE_CLASS ? \
- (__alignof__(type) == 16 ? __va_arg16(ap, type) : \
- __va_arg8(ap, type)) : \
- (__builtin_classify_type(*(type *)0) < __RECORD_TYPE_CLASS ? \
- __va_int(ap, type) : \
- (sizeof(type) <= 8 ? __va_arg8(ap, type) : \
- (sizeof(type) <= 16 ? __va_arg16(ap, type) : \
- *__va_arg8(ap, type *)))))
-
-#endif /* __GNUCLIKE_BUILTIN_STDARG */
-
#endif /* !_MACHINE_STDARG_H_ */