summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2002-07-25 04:58:58 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2002-07-25 04:58:58 +0000
commit189e4ca88f7f2f4e273da4b494ab9613e823cedf (patch)
tree06e50198a433953f4ed80e9d7e0a77f178d83523 /lib/libc
parent45c6c9de427eafe01de4aca43bb6e468ae950824 (diff)
real vfork
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arch/hppa/sys/Ovfork.S20
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