summaryrefslogtreecommitdiff
path: root/amd64/include/ape/stdarg.h
blob: b687c5a46c76f944807ca09f345b6e801bcb6d4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef __STDARG
#define __STDARG

typedef char *va_list;

#define va_start(list, start) \
	(list = (sizeof(start)<8 ? \
		(char *)((long long *)&(start)+1) : \
		(char *)(&(start)+1)))
#define va_end(list)
#define va_arg(list, mode)\
	((sizeof(mode) == 1)?\
		((mode*)(list += 8))[-8]:\
	(sizeof(mode) == 2)?\
		((mode*)(list += 8))[-4]:\
	(sizeof(mode) == 4)?\
		((mode*)(list += 8))[-2]:\
		((mode*)(list += sizeof(mode)))[-1])
#define va_copy(dst, src) \
	((dst) = (src))

#endif /* __STDARG */