X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/cc80dccf2159febf657f8bd3acb2633e2d6c90df..789ebb2d04033053b3cfeaa73648e3a1c3b3d8f5:/include/raw/stdarg.h diff --git a/include/raw/stdarg.h b/include/raw/stdarg.h index 0de5da4..e34a40c 100644 --- a/include/raw/stdarg.h +++ b/include/raw/stdarg.h @@ -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 -#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