/* $Id: stdarg.h,v 1.4 2002/10/29 04:45:18 rex Exp $ */ /* * stdarg.h * * handle variable argument list. Conforming to the Single UNIX(r) * Specification Version 2, System Interface & Headers Issue 5 * * This file is part of the ReactOS Operating System. * * Contributors: * Created by KJK::Hyperion * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ #ifndef __STDARG_H_INCLUDED__ #define __STDARG_H_INCLUDED__ /* OBJECTS */ /* TYPES */ typedef char* va_list; /* CONSTANTS */ /* PROTOTYPES */ /* MACROS */ /* taken from mingw's stdarg.h */ /* Amount of space required in an argument list (ie. the stack) for an argument of type t. */ #define __va_argsiz(t) \ (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) #define va_start(ap, pN) \ ((ap) = ((va_list) (&pN) + __va_argsiz(pN))) #define va_end(ap) ((void)0) #define va_arg(ap, t) \ (((ap) = (ap) + __va_argsiz(t)), \ *((t*) (void*) ((ap) - __va_argsiz(t)))) #endif /* __STDARG_H_INCLUDED__ */ /* EOF */