1 #ifndef _STDARG_H
2 #define _STDARG_H
3
4 typedef char *va_list;
5
6
7
8
9 #define __va_rounded_size(TYPE) \
10 (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
11
12 #ifndef __sparc__
13 #define va_start(AP, LASTARG) \
14 (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
15 #else
16 #define va_start(AP, LASTARG) \
17 (__builtin_saveregs (), \
18 AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
19 #endif
20
21 void va_end (va_list);
22 #define va_end(AP)
23
24 #define va_arg(AP, TYPE) \
25 (AP += __va_rounded_size (TYPE), \
26 *((TYPE *) (AP - __va_rounded_size (TYPE))))
27
28 #endif