summaryrefslogtreecommitdiff
path: root/amd64/include/ape/stdarg.h
diff options
context:
space:
mode:
Diffstat (limited to 'amd64/include/ape/stdarg.h')
-rw-r--r--amd64/include/ape/stdarg.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/amd64/include/ape/stdarg.h b/amd64/include/ape/stdarg.h
new file mode 100644
index 000000000..cf466841f
--- /dev/null
+++ b/amd64/include/ape/stdarg.h
@@ -0,0 +1,18 @@
+#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])
+
+#endif /* __STDARG */