]> Joshua Wise's Git repositories - netwatch.git/blobdiff - include/raw/stdarg.h
Move the Multiboot code around to have more sane filenames.
[netwatch.git] / include / raw / stdarg.h
index 0de5da4aa6ade5e75b1875440944c55044824f30..e34a40cbe49317af55ce552be7b24e5ac13e0859 100644 (file)
@@ -1,68 +1,42 @@
-/*
- * stdarg.h
- * Modified for use in 15-410 at CMU
- * Zachary Anderson(zra)
- */
-
-/*
- * Copyright (c) 1994 The University of Utah and the Flux Group.
- * All rights reserved.
- * 
- * This file is part of the Flux OSKit.  The OSKit is free software, also known
- * as "open source;" you can redistribute it and/or modify it under the terms
- * of the GNU General Public License (GPL), version 2, as published by the Free
- * Software Foundation (FSF).  To explore alternate licensing terms, contact
- * the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271.
- * 
- * The OSKit 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 GPL for more details.  You should have
- * received a copy of the GPL along with the OSKit; see the file COPYING.  If
- * not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA.
- */
+#ifndef _STDARG_H_
+#define _STDARG_H_
 
 
-/*
- * Mach Operating System
- * Copyright (c) 1993 Carnegie Mellon University.
- * All Rights Reserved.
+/* stdarg.h
+ * Copyright (c) 2008, Wes Filardo.
+ *
+ * This program is free software. It comes without any warranty, to
+ * the extent permitted by applicable law. You can redistribute it
+ * and/or modify it under the terms of the Do What The Fuck You Want
+ * To Public License, Version 2, as reproduced below:
  *
  *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
+ *        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ *                   Version 2, December 2004
  *
  *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * Copyright (C) 2004 Sam Hocevar
+ *  14 rue de Plaisance, 75014 Paris, France
+ * Everyone is permitted to copy and distribute verbatim or modified
+ * copies of this license document, and changing it is allowed as long
+ * as the name is changed.
  *
  *
- * Carnegie Mellon requests users of this software to return to
+ *            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ *   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  *
  *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
+ *  0. You just DO WHAT THE FUCK YOU WANT TO. 
  *
  *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
  */
 
  */
 
+/* This is awful, but really these are compiler intrinsics, so we use the
+ * GNU compiler intrinsics.
+ */
 
 
-#ifndef _STDARG_H_
-#define _STDARG_H_
-
-#define __va_size(type) ((sizeof(type)+3) & ~0x3)
-
-#ifndef _VA_LIST_
-#define _VA_LIST_
-typedef        char * va_list;
+#ifdef __GNUC__
+typedef __builtin_va_list va_list;
+#define va_start(v,l)   __builtin_va_start(v,l)
+#define va_end(v)       __builtin_va_end(v)
+#define va_arg(v,l)     __builtin_va_arg(v,l)
+#define va_copy(d,s)    __builtin_va_copy(d,s)
+#else
+#error "Don't know how to use varargs not on GNUC, sorry."
 #endif
 
 #endif
 
-#define        va_start(pvar, lastarg)                 \
-       ((pvar) = (char*)(void*)&(lastarg) + __va_size(lastarg))
-#define        va_end(pvar)
-#define        va_arg(pvar,type)                       \
-       ((pvar) += __va_size(type),             \
-        *((type *)((pvar) - __va_size(type))))
-
-#endif /* _STDARG_H_ */
+#endif
This page took 0.030239 seconds and 4 git commands to generate.