X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=includes%2Fstdarg.h;fp=includes%2Fstdarg.h;h=0000000000000000000000000000000000000000;hp=62d0e404e36dbc80d1e0fdfb51e6f7edc04836ff;hb=a1f747e81dad0bb9897cb11c652403bb7bbf084c;hpb=1d9d92ba957a0b8307c9a65c35867fde68e6533b diff --git a/includes/stdarg.h b/includes/stdarg.h deleted file mode 100644 index 62d0e40..0000000 --- a/includes/stdarg.h +++ /dev/null @@ -1,80 +0,0 @@ -/* ---------------------------------------------------------------------------- - * $Id$ - * ---------------------------------------------------------------------------- - * Public Domain C Library - http://pdclib.sourceforge.net - * This code is Public Domain. Use, modify, and redistribute at will. - * ---------------------------------------------------------------------------- - * Variable arguments - * ---------------------------------------------------------------------------- - * This header is part of a freestanding implementation - * --------------------------------------------------------------------------*/ - -#ifndef _STDARG_H -#define _STDARG_H _STDARG_H - -/* TODO: This code was contributed by Michael Moody, who added: - * "As always with my code it's not guaranteed bug-free (In fact I know for a - * fact it won't work properly on certain archs)." - * Code assumes that: - * - arguments are passed on the stack; - * - arguments are alligned to pointer size. - */ - -/* ---------------------------------------------------------------------------- - * TYPEDEFS - * --------------------------------------------------------------------------*/ - -typedef char * va_list; - -/* ---------------------------------------------------------------------------- - * MACROS - * --------------------------------------------------------------------------*/ - -/** Returns the size of 'type' rounded up to the nearest multiple of the size - * of a pointer. This macro is just here for clarity. - */ -#define __va_round(type) \ - ( \ - (sizeof(type) + sizeof(void *) - 1) & ~(sizeof(void *) - 1) \ - ) - -/** Initialises ap for use by va_arg by setting ap to point at the first - * argument in the ellipsis. parmN is the last known parameter in the function - * definition (ie the one before the ellipsis). - */ -#define va_start(ap, parmN) \ - ( \ - (ap) = (char *)&parmN + (__va_round(parmN)) \ - , \ - (void)0 \ - ) - -/** Returns the next argument, assumed variable type is 'type', in the - * ellipsis. - */ -#define va_arg(ap, type) \ - ( \ - (ap) += (__va_round(type)) \ - , \ - (*(type*)((ap) - (__va_round(type)))) \ - ) - -/** Cleans up ap. - */ -#define va_end(ap) \ - ( \ - (ap) = (void *)0 \ - , \ - (void)0 \ - ) - -/** Makes the va_list dest be a copy of the va_list src. - */ -#define va_copy(dest, src) \ - ( \ - (dest) = (src) \ - , \ - (void)0 \ - ) - -#endif /* _STDARG_H */