File: sbrk.c

package info (click to toggle)
gcl 2.6.14-21
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 60,864 kB
  • sloc: ansic: 177,407; lisp: 151,509; asm: 128,169; sh: 22,510; cpp: 11,923; tcl: 3,181; perl: 2,930; makefile: 2,360; sed: 334; yacc: 226; lex: 95; awk: 30; fortran: 24; csh: 23
file content (28 lines) | stat: -rwxr-xr-x 330 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <sys/types.h>
extern char end;

static caddr_t curbrk = &end;
caddr_t sbrk(int n);

void *
sbrk(int n) { 
  int res;
  if (n==0) return curbrk;
  { 
    void * x=curbrk;
    char *p;
    p=curbrk;
    p=p+n;
    res = brk(p);
    
    if (res==-1) error("can't set brk");
    else curbrk = p;
    return (x);
  }
}