34 lines
		
	
	
	
		
			516 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			516 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "lib.h"
 | |
| 
 | |
| extern char *brksize;
 | |
| 
 | |
| PUBLIC char *brk(addr)
 | |
| char *addr;
 | |
| {
 | |
|   int k;
 | |
| 
 | |
|   k = callm1(MM, BRK, 0, 0, 0, addr, NIL_PTR, NIL_PTR);
 | |
|   if (k == OK) {
 | |
| 	brksize = M.m2_p1;
 | |
| 	return(NIL_PTR);
 | |
|   } else {
 | |
| 	return( (char*) -1 );
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| PUBLIC char *sbrk(incr)
 | |
| int incr;
 | |
| {
 | |
|   char *newsize, *oldsize;
 | |
|   extern int endv, dorgv;
 | |
| 
 | |
|   oldsize = brksize;
 | |
|   newsize = brksize + incr;
 | |
|   if (incr > 0 && newsize < oldsize) return( (char *) -1);
 | |
|   if (brk(newsize) == 0)
 | |
| 	return(oldsize);
 | |
|   else
 | |
| 	return( (char *) -1 );
 | |
| }
 | |
| 
 |