📄 sbrk.c
字号:
/* donated by dcgrendel */
char *get_stack_ptr(void);
__asm__("
_get_stack_ptr:
mov r15, r0
mov #0, r1
rts
nop
");
void *sbrk(int incr)
{
extern char end;
static char *heap_end;
char *prev_heap_end;
char *stack_ptr = get_stack_ptr();
if (heap_end == 0) {
heap_end = &end;
heap_end = (char *)(((int)heap_end & 0xffffffe0) + 0x20);
}
prev_heap_end = heap_end;
if (heap_end + incr > stack_ptr)
{
(*(void(**)())0x8c0000e0)(1);
}
heap_end += incr;
return(prev_heap_end);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -