aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/alpha/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/alpha/sysdep.h')
-rw-r--r--sysdeps/unix/alpha/sysdep.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index b9bc1c0..f12edef 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -134,6 +134,21 @@ __LABEL(name) \
#define ret_NOERRNO ret
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .globl name; \
+ .align 4; \
+ .ent name,0; \
+__LABEL(name) \
+ PSEUDO_PROLOGUE; \
+ PSEUDO_PREPARE_ARGS \
+ lda v0, SYS_ify(syscall_name); \
+ call_pal PAL_callsys;
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(sym) END(sym)
+
+#define ret_ERRVAL ret
+
#define r0 v0
#define r1 a4