1*54408Storek/* 2*54408Storek * Copyright (c) 1992 The Regents of the University of California. 3*54408Storek * All rights reserved. 4*54408Storek * 5*54408Storek * This software was developed by the Computer Systems Engineering group 6*54408Storek * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 7*54408Storek * contributed to Berkeley. 8*54408Storek * 9*54408Storek * %sccs.include.redist.c% 10*54408Storek * 11*54408Storek * from: $Header: sbrk.s,v 1.1 91/07/06 13:05:59 torek Exp $ 12*54408Storek */ 13*54408Storek 14*54408Storek#if defined(LIBC_SCCS) && !defined(lint) 15*54408Storek .asciz "@(#)sbrk.s 5.1 (Berkeley) 06/25/92" 16*54408Storek#endif /* LIBC_SCCS and not lint */ 17*54408Storek 18*54408Storek#include "SYS.h" 19*54408Storek 20*54408Storek .globl _end 21*54408Storek .globl curbrk 22*54408Storek 23*54408Storek .data 24*54408Storekcurbrk: .long _end 25*54408Storek .text 26*54408Storek 27*54408StorekENTRY(sbrk) 28*54408Storek sethi %hi(curbrk), %o2 29*54408Storek ld [%o2 + %lo(curbrk)], %o3 ! %o3 = old break 30*54408Storek add %o3, %o0, %o4 ! %o4 = new break 31*54408Storek mov %o4, %o0 ! copy for syscall 32*54408Storek mov SYS_break, %g1 33*54408Storek t ST_SYSCALL ! break(new_break) 34*54408Storek bcc 1f ! if success, 35*54408Storek mov %o3, %o0 ! set return value 36*54408Storek ERROR() 37*54408Storek1: 38*54408Storek retl ! and update curbrk 39*54408Storek st %o4, [%o2 + %lo(curbrk)] 40