[source navigation] [diff markup] [identifier search] [freetext search] [file search]

Oldlinux Cross Reference
Linux/include/stdarg.h

Version: [1.0] [0.99.11] [0.99] [0.98] [0.97] [0.96a] [0.95] [0.12] [0.11] [0.01]
Architecture: [i386]

  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 
 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);          /* 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 */
 29 

[source navigation] [diff markup] [identifier search] [freetext search] [file search]

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.