|
|
1.1 root 1: #ifndef _STDARG_H
2: #define _STDARG_H
3:
4: typedef char *va_list;
5:
6: /* Amount of space required in an argument list for an arg of type TYPE.
7: TYPE may alternatively be an expression whose type is used. */
8:
9: #define __va_rounded_size(TYPE) \
10: (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
11:
1.1.1.3 ! root 12: #ifndef __sparc__
1.1 root 13: #define va_start(AP, LASTARG) \
14: (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
1.1.1.2 root 15: #else
16: #define va_start(AP, LASTARG) \
17: (__builtin_saveregs (), \
18: AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
19: #endif
1.1 root 20:
21: void va_end (va_list); /* Defined in gnulib */
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 /* _STDARG_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.