version 1.1.1.1, 2008/06/03 10:38:44 |
version 1.1.1.1.2.1, 2008/08/13 17:12:27 |
|
|
#ifndef _I386_STDARG_H |
#ifndef _I386_STDARG_H |
#define _I386_STDARG_H |
#define _I386_STDARG_H |
|
|
#include <machine/ansi.h> |
#include <sys/cdefs.h> |
|
|
typedef _BSD_VA_LIST_ va_list; |
|
|
|
#ifdef __lint__ |
#ifdef __lint__ |
#define __builtin_next_arg(t) ((t) ? 0 : 0) |
typedef void * va_list; |
#define __builtin_stdarg_start(a, l) ((a) = ((l) ? 0 : 0)) |
#define va_start(a, l) (0) |
#define __builtin_va_arg(a, t) ((a) ? 0 : 0) |
#define va_arg(a, t) (0) |
#define __builtin_va_end /* nothing */ |
#define va_end /* nothing */ |
#define __builtin_va_copy(d, s) ((d) = (s)) |
#define va_copy(d, s) ((d) = (s)) |
#endif |
|
|
|
#ifdef __GNUC__ |
#elif __GNUC_PREREQ__(2, 96) |
|
#define va_list __builtin_va_list |
#define va_start(ap, last) __builtin_stdarg_start((ap), (last)) |
#define va_start(ap, last) __builtin_stdarg_start((ap), (last)) |
#define va_arg __builtin_va_arg |
#define va_arg __builtin_va_arg |
#define va_end __builtin_va_end |
#define va_end __builtin_va_end |
#define va_copy(dest, src) __builtin_va_copy((dest), (src)) |
#define va_copy(dest, src) __builtin_va_copy((dest), (src)) |
#else |
#else |
|
|
|
typedef char * va_list; |
|
|
#define __va_size(type) \ |
#define __va_size(type) \ |
(((sizeof(type) + sizeof(long) - 1) / sizeof(long)) * sizeof(long)) |
(((sizeof(type) + sizeof(long) - 1) / sizeof(long)) * sizeof(long)) |
|
|
#define va_start(ap, last) \ |
#define va_start(ap, last) \ |
((ap) = (va_list)__builtin_next_arg(last)) |
((ap) = (va_list)&(last) + __va_size(last)) |
|
|
#define va_arg(ap, type) \ |
#define va_arg(ap, type) \ |
(*(type *)(void *)((ap) += __va_size(type), (ap) - __va_size(type))) |
(*(type *)(void *)((ap) += __va_size(type), (ap) - __va_size(type))) |
#define va_end(ap) |
|
|
#define va_end(ap) |
|
|
#define va_copy(dest, src) ((dest) = (src)) |
#define va_copy(dest, src) ((dest) = (src)) |
#endif |
#endif |
|
|