From 08422d98e3bda3af3716e7377f871c155858592f Mon Sep 17 00:00:00 2001 From: Chris Torek Date: Thu, 25 Jun 1992 13:37:54 -0800 Subject: [PATCH] date and time created 92/06/25 06:37:54 by torek SCCS-vsn: lib/libc/sparc/sys/Ovfork.s 5.1 SCCS-vsn: lib/libc/sparc/sys/brk.s 5.1 --- usr/src/lib/libc/sparc/sys/Ovfork.s | 30 +++++++++++++++++++++ usr/src/lib/libc/sparc/sys/brk.s | 42 +++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 usr/src/lib/libc/sparc/sys/Ovfork.s create mode 100644 usr/src/lib/libc/sparc/sys/brk.s diff --git a/usr/src/lib/libc/sparc/sys/Ovfork.s b/usr/src/lib/libc/sparc/sys/Ovfork.s new file mode 100644 index 0000000000..eb58b4b4c4 --- /dev/null +++ b/usr/src/lib/libc/sparc/sys/Ovfork.s @@ -0,0 +1,30 @@ +/* + * Copyright (c) 1992 The Regents of the University of California. + * All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * %sccs.include.redist.c% + * + * from: $Header: Ovfork.s,v 1.1 91/07/06 13:05:56 torek Exp $ + */ + +#if defined(LIBC_SCCS) && !defined(lint) + .asciz "@(#)Ovfork.s 5.1 (Berkeley) %G%" +#endif /* LIBC_SCCS and not lint */ + +/* + * pid = vfork(); + * + * %o1 == 0 in parent process, 1 in child process. + * %o0 == pid of child in parent, pid of parent in child. + */ + +#include "SYS.h" + +SYSCALL(vfork) + dec %o1 ! from 1 to 0 in child, 0 to -1 in parent + retl + and %o0, %o1, %o0 ! return 0 in child, pid in parent diff --git a/usr/src/lib/libc/sparc/sys/brk.s b/usr/src/lib/libc/sparc/sys/brk.s new file mode 100644 index 0000000000..5f218a8bc9 --- /dev/null +++ b/usr/src/lib/libc/sparc/sys/brk.s @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1992 The Regents of the University of California. + * All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * %sccs.include.redist.c% + * + * from: $Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp $ + */ + +#if defined(LIBC_SCCS) && !defined(lint) + .asciz "@(#)brk.s 5.1 (Berkeley) %G%" +#endif /* LIBC_SCCS and not lint */ + +#include "SYS.h" + + .globl curbrk + .globl minbrk + + .data +minbrk: .long _end ! lower brk limit; also for gmon code + .text + +ENTRY(brk) + sethi %hi(minbrk), %o1 ! %o1 = minbrk + ld [%o1 + %lo(minbrk)], %o1 + cmp %o1, %o0 ! if (minbrk > %o0) + bg,a 0f + mov %o1, %o0 ! %o0 = minbrk +0: + mov %o0, %o2 ! save argument to syscall + mov SYS_break, %g1 + t ST_SYSCALL + bcc,a 1f + sethi %hi(curbrk), %g1 + ERROR() +1: + retl ! success, return 0 & record new break + st %o2, [%g1 + %lo(curbrk)] -- 2.20.1