/ userspace / include / stdarg.h
stdarg.h
 1  #ifndef STDARG_H
 2  #define STDARG_H
 3  
 4  // Variable argument macros for i386
 5  typedef char* va_list;
 6  
 7  #define __va_rounded_size(TYPE) \
 8      (((sizeof(TYPE) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
 9  
10  #define va_start(AP, LASTARG) \
11      (AP = ((char*)&(LASTARG) + __va_rounded_size(LASTARG)))
12  
13  #define va_arg(AP, TYPE) \
14      (AP += __va_rounded_size(TYPE), \
15       *((TYPE*)(AP - __va_rounded_size(TYPE))))
16  
17  #define va_end(AP) \
18      (AP = (va_list)0)
19  
20  #define va_copy(DEST, SRC) \
21      (DEST = SRC)
22  
23  #endif // STDARG_H