MAP_PRIVATE = C.MAP_PRIVATE
MAP_FIXED = C.MAP_FIXED
+ MADV_FREE = C.MADV_FREE
+
SA_SIGINFO = C.SA_SIGINFO
SA_RESTART = C.SA_RESTART
SA_ONSTACK = C.SA_ONSTACK
void
runtime·SysUnused(void *v, uintptr n)
{
- USED(v);
- USED(n);
- // TODO(rsc): call madvise MADV_DONTNEED
+ runtime·madvise(v, n, MADV_FREE);
}
void
MOVL $0xf1, 0xf1 // crash
RET
+TEXT runtime·madvise(SB),7,$-4
+ MOVL $75, AX // sys_madvise
+ INT $0x80
+ JAE 2(PC)
+ MOVL $0xf1, 0xf1 // crash
+ RET
+
TEXT runtime·setitimer(SB),7,$-4
MOVL $83, AX
INT $0x80
MOVL $0xf1, 0xf1 // crash
RET
+TEXT runtime·madvise(SB),7,$0
+ MOVQ addr+0(FP), DI // arg 1 - addr
+ MOVQ len+8(FP), SI // arg 2 - len
+ MOVQ behav+16(FP), DX // arg 3 - behav
+ MOVQ $75, AX // sys_madvise
+ SYSCALL
+ JCC 2(PC)
+ MOVL $0xf1, 0xf1 // crash
+ RET
+
TEXT runtime·sigaltstack(SB),7,$-8
MOVQ new+8(SP), DI // arg 1 - nss
MOVQ old+16(SP), SI // arg 2 - oss