parent
4c2584b65a
commit
e1599341bf
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef _STDARG_H
|
||||||
|
#define _STDARG_H
|
||||||
|
|
||||||
|
typedef char *va_list;
|
||||||
|
|
||||||
|
/* Amount of space required in an argument list for an arg of type TYPE.
|
||||||
|
TYPE may alternatively be an expression whose type is used. */
|
||||||
|
|
||||||
|
#define __va_rounded_size(TYPE) \
|
||||||
|
(((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
|
||||||
|
|
||||||
|
#ifndef __sparc__
|
||||||
|
#define va_start(AP, LASTARG) \
|
||||||
|
(AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
|
||||||
|
#else
|
||||||
|
#define va_start(AP, LASTARG) \
|
||||||
|
(__builtin_saveregs (), \
|
||||||
|
AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void va_end (va_list); /* Defined in gnulib */
|
||||||
|
#define va_end(AP)
|
||||||
|
|
||||||
|
#define va_arg(AP, TYPE) \
|
||||||
|
(AP += __va_rounded_size (TYPE), \
|
||||||
|
*((TYPE *) (AP - __va_rounded_size (TYPE))))
|
||||||
|
|
||||||
|
#endif /* _STDARG_H */
|
Loading…
Reference in new issue