xref: /plan9/386/include/ape/stdarg.h (revision b39189fd423aed869c5cf5189bc504918cff969b)
13e12c5d1SDavid du Colombier #ifndef __STDARG
23e12c5d1SDavid du Colombier #define __STDARG
33e12c5d1SDavid du Colombier 
43e12c5d1SDavid du Colombier typedef char *va_list;
53e12c5d1SDavid du Colombier 
63e12c5d1SDavid du Colombier #define va_start(list, start) list = (sizeof(start)<4 ? (char *)((int *)&(start)+1) : \
73e12c5d1SDavid du Colombier (char *)(&(start)+1))
83e12c5d1SDavid du Colombier #define va_end(list)
9*b39189fdSDavid du Colombier #define va_arg(list, mode)\
10*b39189fdSDavid du Colombier 	((sizeof(mode) == 1)?\
11*b39189fdSDavid du Colombier 		((list += 4), (mode*)list)[-4]:\
12*b39189fdSDavid du Colombier 	(sizeof(mode) == 2)?\
13*b39189fdSDavid du Colombier 		((list += 4), (mode*)list)[-2]:\
14*b39189fdSDavid du Colombier 		((list += sizeof(mode)), (mode*)list)[-1])
153e12c5d1SDavid du Colombier 
163e12c5d1SDavid du Colombier #endif /* __STDARG */
17