+/*
+ * This is the same as UNIX_SYSCALL, but it can call an alternate error
+ * return function. It's generic to support potential future callers.
+ */
+#define UNIX_SYSCALL_ERR(name, nargs,error_ret) \
+ .globl error_ret ;\
+LEAF(_##name, 0) ;\
+ movl $ SYS_##name, %eax ;\
+ UNIX_SYSCALL_TRAP ;\
+ jnb 2f ;\
+ BRANCH_EXTERN(error_ret) ;\
+2:
+