[klibc] [PATCH] vfork() for parisc

Kyle McMartin kyle at parisc-linux.org
Tue Jul 25 15:15:24 PDT 2006


On Tue, Jul 25, 2006 at 02:58:02PM -0700, H. Peter Anvin wrote:
> Kyle McMartin wrote:
> >Implement "pid_t vfork(void)" for parisc.
> >
> Dumb question... where does %r20 get set?  This isn't invoked by a 
> system call stub; it's the entire function.
> 

Oh. Nowhere then. We can set it in the branch delay slot.

---
[PARISC] Load __NR_vfork in syscall branch delay slot

I mistakenly thought this was a system call stub, not
a standalone piece of code.

Signed-off-by: Kyle McMartin <kyle at parisc-linux.org>

--- a/usr/klibc/arch/parisc/vfork.S
+++ b/usr/klibc/arch/parisc/vfork.S
@@ -13,7 +13,7 @@
 vfork:
 	/* pid_t vfork(void) */
 	ble		0x100(%sr2, %r0)	; jump to gateway page
-	nop
+	ldi		__NR_vfork, %r20	; load syscall nr
 
 	ldi		-0x1000,%r19		; %r19 = -4096
 	sub		%r0,%ret0,%r22		; %r22 = -%ret0



More information about the klibc mailing list