home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / src / sys / c / brk < prev    next >
Encoding:
Text File  |  1994-03-08  |  687 b   |  41 lines

  1. static char sccs_id[] = "@(#) brk.c 1.2 " __DATE__ " HJR";
  2.  
  3. /* brk.c (c) Copyright 1990 H.Rogers */
  4.  
  5. #include <string.h>
  6. #include <errno.h>
  7. #include "unistd.h"
  8.  
  9. #include "sys/syslib.h"
  10.  
  11. #define align(x) ((void *)(((unsigned int)(x) + 3) & ~3))
  12.  
  13. int
  14. brk (void *addr)
  15. {
  16.   addr = align (addr);
  17.   if (addr < __lomem || addr >= __stack)
  18.     {
  19.       errno = ENOMEM;
  20.       return (-1);
  21.     }
  22.   __break = addr;
  23.   return (0);
  24. }
  25.  
  26. void *
  27. sbrk (int incr)
  28. {
  29.   register void *addr, *rval;
  30.  
  31.   addr = align ((void *) ((char *) __break + incr));
  32.   if (addr < __lomem || addr >= __stack)
  33.     {
  34.       errno = ENOMEM;
  35.       return ((void *) -1);
  36.     }
  37.   rval = __break;
  38.   __break = addr;
  39.   return (rval);
  40. }
  41.