diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-07-25 04:58:58 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-07-25 04:58:58 +0000 |
commit | 189e4ca88f7f2f4e273da4b494ab9613e823cedf (patch) | |
tree | 06e50198a433953f4ed80e9d7e0a77f178d83523 /lib/libc | |
parent | 45c6c9de427eafe01de4aca43bb6e468ae950824 (diff) |
real vfork
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/arch/hppa/sys/Ovfork.S | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/libc/arch/hppa/sys/Ovfork.S b/lib/libc/arch/hppa/sys/Ovfork.S index 27fb12936a9..6eeec92b005 100644 --- a/lib/libc/arch/hppa/sys/Ovfork.S +++ b/lib/libc/arch/hppa/sys/Ovfork.S @@ -1,7 +1,7 @@ -/* $OpenBSD: Ovfork.S,v 1.7 2001/06/04 23:14:04 mickey Exp $ */ +/* $OpenBSD: Ovfork.S,v 1.8 2002/07/25 04:58:57 mickey Exp $ */ /* - * Copyright (c) 1999 Michael Shalayeff + * Copyright (c) 1999,2002 Michael Shalayeff * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -35,12 +35,24 @@ #ifdef SYSLIBC_SCCS .text - .asciz "$OpenBSD: Ovfork.S,v 1.7 2001/06/04 23:14:04 mickey Exp $" + .asciz "$OpenBSD: Ovfork.S,v 1.8 2002/07/25 04:58:57 mickey Exp $" .align 4 #endif ENTRY(vfork,0) - SYSCALL(vfork) + .import errno, data + copy rp, t4 + ldil L%SYSCALLGATE, r1 + ble 4(sr7, r1) + ldi __CONCAT(SYS_,vfork), t1 + copy t4, rp + comb,=,n r0, t1, __CONCAT(x,$noerr) + ldil L%errno, r1 + stw t1, R%errno(r1) + ldi -1, ret0 + bv r0(rp) + ldi -1, ret1 + .label __CONCAT(x,$noerr) addi -1, ret1, ret1 bv r0(rp) and ret1, ret0, ret0 |