aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/linux/amd64
diff options
context:
space:
mode:
authorSébastien Paolacci <sebastien.paolacci@gmail.com>2011-12-12 16:33:13 -0500
committerRuss Cox <rsc@golang.org>2011-12-12 16:33:13 -0500
commite6f5a90b5fd51812c31da49fe2f4950fb2ac0e0d (patch)
tree006637317449e7d96efef6f392622fefb284d980 /src/pkg/runtime/linux/amd64
parent0f4f3c6769bddac4cf417849922c0f68f4bedde2 (diff)
downloadgo-e6f5a90b5fd51812c31da49fe2f4950fb2ac0e0d.tar.xz
runtime: madvise and SysUnused for Linux
SysUnused being a direct call to madvise MADV_DONTNEED. R=golang-dev, dave CC=golang-dev https://golang.org/cl/5477057
Diffstat (limited to 'src/pkg/runtime/linux/amd64')
-rw-r--r--src/pkg/runtime/linux/amd64/defs.h6
-rw-r--r--src/pkg/runtime/linux/amd64/sys.s11
2 files changed, 15 insertions, 2 deletions
diff --git a/src/pkg/runtime/linux/amd64/defs.h b/src/pkg/runtime/linux/amd64/defs.h
index 5b44a78530..bf5f79b0e4 100644
--- a/src/pkg/runtime/linux/amd64/defs.h
+++ b/src/pkg/runtime/linux/amd64/defs.h
@@ -12,6 +12,8 @@ enum {
MAP_PRIVATE = 0x2,
MAP_FIXED = 0x10,
+ MADV_DONTNEED = 0x4,
+
SA_RESTART = 0x10000000,
SA_ONSTACK = 0x8000000,
SA_RESTORER = 0x4000000,
@@ -95,7 +97,7 @@ struct Siginfo {
int32 si_signo;
int32 si_errno;
int32 si_code;
- byte Pad_godefs_0[4];
+ byte Pad_cgo_0[4];
byte _sifields[112];
};
struct Itimerval {
@@ -181,7 +183,7 @@ struct Fpreg1 {
struct Sigaltstack {
byte *ss_sp;
int32 ss_flags;
- byte Pad_godefs_0[4];
+ byte Pad_cgo_0[4];
uint64 ss_size;
};
struct Mcontext {
diff --git a/src/pkg/runtime/linux/amd64/sys.s b/src/pkg/runtime/linux/amd64/sys.s
index ff72a75340..76bb48c75a 100644
--- a/src/pkg/runtime/linux/amd64/sys.s
+++ b/src/pkg/runtime/linux/amd64/sys.s
@@ -192,6 +192,17 @@ TEXT runtime·munmap(SB),7,$0
CALL runtime·notok(SB)
RET
+TEXT runtime·madvise(SB),7,$0
+ MOVQ 8(SP), DI
+ MOVQ 16(SP), SI
+ MOVQ 24(SP), DX
+ MOVQ $28, AX // madvise
+ SYSCALL
+ CMPQ AX, $0xfffffffffffff001
+ JLS 2(PC)
+ CALL runtime·notok(SB)
+ RET
+
TEXT runtime·notok(SB),7,$0
MOVQ $0xf1, BP
MOVQ BP, (BP)