29 lines
		
	
	
	
		
			330 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			330 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| #include "syscall.h"
 | |
| .globl	_end
 | |
| DEFINE(_brk)
 | |
| 	cmpl	4(ap),min
 | |
| 	bgeq	ok
 | |
| 	movl	min,4(ap)
 | |
| ok:
 | |
| 	chmk	$17
 | |
| 	bcs	err
 | |
| 	movl	4(ap),cur
 | |
| 	clrl	r0
 | |
| 	ret
 | |
| err:
 | |
| 	jmp	cerror
 | |
| 
 | |
| DEFINE(_sbrk)
 | |
| 	addl3	cur,4(ap),-(sp)
 | |
| 	bcs	err
 | |
| 	pushl	$1
 | |
| 	movl	ap,r3
 | |
| 	movl	sp,ap
 | |
| 	chmk	$17
 | |
| 	bcs	err
 | |
| 	movl	cur,r0
 | |
| 	addl2	4(r3),cur
 | |
| 	ret
 | |
| .data
 | |
| min: .long	_end
 | |
| cur: .long	_end
 |