|
|
1.1 root 1: #old = sbrk(increment);
2: #
3: #sbrk gets increment more core, and returns a pointer
4: # to the beginning of the new core area
5: #
6: break = 17
7: .globl _sbrk
8: .globl _end
9: .globl cerror
10:
11: _sbrk:
12: linkw a6,#0
13: addql #3,sp@(8)
14: andl #0xfffffffc,sp@(8)
15: movl nd,d0
16: addl sp@(8),d0
17: movl d0,sp@-
18: jsr 1f
19: bcc noerr1
20: addql #4,sp
21: jmp cerror2
22: noerr1:
23: addql #4,sp
24: movl nd,d0
25: movl sp@(8),d1
26: addl d1,nd
27: movl d0,a0
28: unlk a6
29: rts
30: 1:
31: linkw a6,#0
32: pea break
33: trap #0
34: unlk a6
35: rts
36:
37: .globl _brk
38: # brk(value)
39: # as described in man2.
40: # returns 0 for ok, -1 for error.
41:
42: _brk:
43: linkw a6,#0
44: pea break
45: trap #0
46: bcc noerr2
47: jmp cerror2
48: noerr2:
49: movl sp@(8),nd
50: clrl d0
51: lea 0,a0
52: unlk a6
53: rts
54:
55: .data
56: nd: .long _end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.