Systemd/klibc/klibc/arch/alpha/pipe.c
greg@kroah.com a41a0e28c2 [PATCH] added klibc version 0.82 (cvs tree) to the udev tree.
Not hooked up to the build yet.
2005-04-26 21:05:23 -07:00

29 lines
588 B
C

#include <unistd.h>
#include <sys/syscall.h>
/* pipe() on alpha returns both file descriptors in registers --
$0 and $20 respectively. This is unlike any other system call,
as far as I can tell. */
int pipe(int *fds)
{
register long sc_0 __asm__("$0");
register long sc_19 __asm__("$19");
register long sc_20 __asm__("$20");
sc_0 = __NR_pipe;
asm volatile("callsys" : "=r" (sc_0), "=r" (sc_19), "=r" (sc_20)
: "0" (sc_0)
: _syscall_clobbers);
if ( sc_19 ) {
errno = sc_19;
return -1;
}
fds[0] = sc_0;
fds[1] = sc_20;
return 0;
}