xref: /plan9/power/include/ape/stdarg.h (revision b39189fd423aed869c5cf5189bc504918cff969b)
17dd7cddfSDavid du Colombier #ifndef __STDARG
27dd7cddfSDavid du Colombier #define __STDARG
37dd7cddfSDavid du Colombier 
47dd7cddfSDavid du Colombier typedef char *va_list;
57dd7cddfSDavid du Colombier 
6*b39189fdSDavid du Colombier #define va_start(list, start) list =\
7*b39189fdSDavid du Colombier 	(sizeof(start) < 4?\
8*b39189fdSDavid du Colombier 		(char*)((int*)&(start)+1):\
9*b39189fdSDavid du Colombier 		(char*)(&(start)+1))
107dd7cddfSDavid du Colombier #define va_end(list)
116891d857SDavid du Colombier #define va_arg(list, mode)\
126891d857SDavid du Colombier 	((sizeof(mode) <= 4)?\
136891d857SDavid du Colombier 		((list += 4), (mode*)list)[-1]:\
146891d857SDavid du Colombier 	(signof(mode) != signof(double))?\
156891d857SDavid du Colombier 		((list += sizeof(mode)), (mode*)list)[-1]:\
166891d857SDavid du Colombier 		((list = (char*)((unsigned long)(list+7) & ~7) + sizeof(mode)), (mode*)list)[-1])
177dd7cddfSDavid du Colombier 
187dd7cddfSDavid du Colombier #endif /* __STDARG */
19