xref: /plan9/arm/include/ape/stdarg.h (revision b39189fd423aed869c5cf5189bc504918cff969b)
180ee5cbfSDavid du Colombier #ifndef __STDARG
280ee5cbfSDavid du Colombier #define __STDARG
380ee5cbfSDavid du Colombier 
480ee5cbfSDavid du Colombier typedef char *va_list;
580ee5cbfSDavid du Colombier 
680ee5cbfSDavid du Colombier #define va_start(list, start) list = (sizeof(start)<4 ? (char *)((int *)&(start)+1) : \
780ee5cbfSDavid du Colombier (char *)(&(start)+1))
880ee5cbfSDavid 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])
1580ee5cbfSDavid du Colombier 
1680ee5cbfSDavid du Colombier #endif /* __STDARG */
17