1*54403Storek/* 2*54403Storek * Copyright (c) 1992 The Regents of the University of California. 3*54403Storek * All rights reserved. 4*54403Storek * 5*54403Storek * This software was developed by the Computer Systems Engineering group 6*54403Storek * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 7*54403Storek * contributed to Berkeley. 8*54403Storek * 9*54403Storek * %sccs.include.redist.c% 10*54403Storek * 11*54403Storek * from: $Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp $ 12*54403Storek */ 13*54403Storek 14*54403Storek#if defined(LIBC_SCCS) && !defined(lint) 15*54403Storek .asciz "@(#)brk.s 5.1 (Berkeley) 06/25/92" 16*54403Storek#endif /* LIBC_SCCS and not lint */ 17*54403Storek 18*54403Storek#include "SYS.h" 19*54403Storek 20*54403Storek .globl curbrk 21*54403Storek .globl minbrk 22*54403Storek 23*54403Storek .data 24*54403Storekminbrk: .long _end ! lower brk limit; also for gmon code 25*54403Storek .text 26*54403Storek 27*54403StorekENTRY(brk) 28*54403Storek sethi %hi(minbrk), %o1 ! %o1 = minbrk 29*54403Storek ld [%o1 + %lo(minbrk)], %o1 30*54403Storek cmp %o1, %o0 ! if (minbrk > %o0) 31*54403Storek bg,a 0f 32*54403Storek mov %o1, %o0 ! %o0 = minbrk 33*54403Storek0: 34*54403Storek mov %o0, %o2 ! save argument to syscall 35*54403Storek mov SYS_break, %g1 36*54403Storek t ST_SYSCALL 37*54403Storek bcc,a 1f 38*54403Storek sethi %hi(curbrk), %g1 39*54403Storek ERROR() 40*54403Storek1: 41*54403Storek retl ! success, return 0 & record new break 42*54403Storek st %o2, [%g1 + %lo(curbrk)] 43