summaryrefslogtreecommitdiff
path: root/alpha/include/ape/stdarg.h
diff options
context:
space:
mode:
Diffstat (limited to 'alpha/include/ape/stdarg.h')
-rw-r--r--alpha/include/ape/stdarg.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/alpha/include/ape/stdarg.h b/alpha/include/ape/stdarg.h
new file mode 100644
index 000000000..f4ff6c734
--- /dev/null
+++ b/alpha/include/ape/stdarg.h
@@ -0,0 +1,17 @@
+#ifndef __STDARG
+#define __STDARG
+
+typedef char *va_list;
+
+#define va_start(list, start) list = (char *)(&(start)+1)
+#define va_end(list)
+#define va_arg(list, mode)\
+ (sizeof(mode)==1?\
+ ((mode*)(list += 4))[-1]:\
+ sizeof(mode)==2?\
+ ((mode*)(list += 4))[-1]:\
+ sizeof(mode)>4?\
+ ((mode*)(list = (char*)((long)(list+7) & ~7) + sizeof(mode)))[-1]:\
+ ((mode*)(list += sizeof(mode)))[-1])
+
+#endif /* __STDARG */