From b4ce17690f176b972a8cb5cbdd1005bbd4aecf15 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 1 Mar 2004 20:30:48 +0000 Subject: [PATCH] 2004-02-26 Andreas Schwab * defs.h [LINUX && IA64]: Declare getrval2 also on IA64. * net.c (sys_pipe) [LINUX && IA64]: For IA64 use the two return values. * syscall.c (getrval2) [LINUX && IA64]: Implement for IA64. --- defs.h | 2 +- net.c | 4 ++-- syscall.c | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/defs.h b/defs.h index 7641e67d..6d22d34f 100644 --- a/defs.h +++ b/defs.h @@ -484,7 +484,7 @@ extern void tv_div P((struct timeval *, struct timeval *, int)); #ifdef SUNOS4 extern int fixvfork P((struct tcb *)); #endif -#if !(defined(LINUX) && !defined(SPARC)) +#if !(defined(LINUX) && !defined(SPARC) && !defined(IA64)) extern long getrval2 P((struct tcb *)); #endif #ifdef USE_PROCFS diff --git a/net.c b/net.c index 7dcd2866..e986a427 100644 --- a/net.c +++ b/net.c @@ -1166,7 +1166,7 @@ sys_pipe(tcp) struct tcb *tcp; { -#if defined(LINUX) && !defined(SPARC) && !defined(SH) +#if defined(LINUX) && !defined(SPARC) && !defined(SH) && !defined(IA64) int fds[2]; if (exiting(tcp)) { @@ -1179,7 +1179,7 @@ struct tcb *tcp; else tprintf("[%u, %u]", fds[0], fds[1]); } -#elif defined(SPARC) || defined(SH) || defined(SVR4) || defined(FREEBSD) +#elif defined(SPARC) || defined(SH) || defined(SVR4) || defined(FREEBSD) || defined(IA64) if (exiting(tcp)) tprintf("[%lu, %lu]", tcp->u_rval, getrval2(tcp)); #endif diff --git a/syscall.c b/syscall.c index d2981b7b..214e38bb 100644 --- a/syscall.c +++ b/syscall.c @@ -2432,6 +2432,9 @@ struct tcb *tcp; if (upeek(tcp->pid, 4*(REG_REG0+1), &val) < 0) return -1; #endif /* SPARC */ +#elif defined(IA64) + if (upeek(tcp->pid, PT_R9, &val) < 0) + return -1; #endif /* LINUX */ #ifdef SUNOS4 -- 2.40.0