Index: uspace/lib/c/arch/ia64/include/libarch/thread.h
===================================================================
--- uspace/lib/c/arch/ia64/include/libarch/thread.h	(revision a949f4ae07227222cc7ff520baf64ebe6ef3d307)
+++ uspace/lib/c/arch/ia64/include/libarch/thread.h	(revision 3fcea3438e30a096e9a5590a54508cfe3d5a697f)
@@ -36,4 +36,18 @@
 #define _LIBC_ia64_THREAD_H_
 
+#include <align.h>
+
+static inline uintptr_t arch_thread_prepare(void *stack, size_t stack_size,
+    void (*main)(void *), void *arg)
+{
+	uintptr_t *sp = (uintptr_t *) (ALIGN_DOWN((uintptr_t) stack + stack_size / 2, 16));
+
+	/* Store data under stack pointer */
+	sp[-1] = (uintptr_t) arg;
+	sp[-2] = (uintptr_t) main;
+
+	return (uintptr_t) sp;
+}
+
 #endif
 
