aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_netbsd_amd64.s
diff options
context:
space:
mode:
authorMaya Rashish <maya@netbsd.org>2019-04-22 10:01:22 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2019-04-22 17:19:23 +0000
commitd1f43ccef7a8285bf3bcd3518d4f38838ce5da1c (patch)
treef2512d6c772f2c64d795aad49ccc694018810a88 /src/runtime/sys_netbsd_amd64.s
parent744fcfec4e94d9585d2be6f9efae8480a2f2fc8d (diff)
downloadgo-d1f43ccef7a8285bf3bcd3518d4f38838ce5da1c.tar.gz
go-d1f43ccef7a8285bf3bcd3518d4f38838ce5da1c.zip
runtime: use named macros on NetBSD
It will use the full names that appear in netbsd's /usr/include/sys/syscall.h names. This adds some compat-goo (sys_sigprocmask->SYS_sigprocmask14), which might not be pretty, but the information about whether the compat version is used is probably important, as Go will keep using interfaces even after they are considered compatibility, which has caused problems in the past. also, the same names appear in ktrace (with the numbers). Change-Id: Idc1bb254ee33757a39ba224d91e8fbb0331e2149 GitHub-Last-Rev: b915e8f8a323cdc2d03119c3cf18e35d08c63d18 GitHub-Pull-Request: golang/go#31594 Reviewed-on: https://go-review.googlesource.com/c/go/+/173158 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime/sys_netbsd_amd64.s')
-rw-r--r--src/runtime/sys_netbsd_amd64.s112
1 files changed, 74 insertions, 38 deletions
diff --git a/src/runtime/sys_netbsd_amd64.s b/src/runtime/sys_netbsd_amd64.s
index 531c227a7b..588d811287 100644
--- a/src/runtime/sys_netbsd_amd64.s
+++ b/src/runtime/sys_netbsd_amd64.s
@@ -10,12 +10,48 @@
#include "go_tls.h"
#include "textflag.h"
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 3
+#define FD_CLOEXEC 1
+#define F_SETFD 2
+
+#define SYS_exit 1
+#define SYS_read 3
+#define SYS_write 4
+#define SYS_open 5
+#define SYS_close 6
+#define SYS_getpid 20
+#define SYS_kill 37
+#define SYS_munmap 73
+#define SYS_madvise 75
+#define SYS_fcntl 92
+#define SYS_mmap 197
+#define SYS___sysctl 202
+#define SYS___sigaltstack14 281
+#define SYS___sigprocmask14 293
+#define SYS_getcontext 307
+#define SYS_setcontext 308
+#define SYS__lwp_create 309
+#define SYS__lwp_exit 310
+#define SYS__lwp_self 311
+#define SYS__lwp_setprivate 317
+#define SYS__lwp_kill 318
+#define SYS__lwp_unpark 321
+#define SYS___sigaction_sigtramp 340
+#define SYS_kqueue 344
+#define SYS_sched_yield 350
+#define SYS___setitimer50 425
+#define SYS___clock_gettime50 427
+#define SYS___nanosleep50 430
+#define SYS___kevent50 435
+#define SYS____lwp_park60 478
+
// int32 lwp_create(void *context, uintptr flags, void *lwpid)
TEXT runtime·lwp_create(SB),NOSPLIT,$0
MOVQ ctxt+0(FP), DI
MOVQ flags+8(FP), SI
MOVQ lwpid+16(FP), DX
- MOVL $309, AX // sys__lwp_create
+ MOVL $SYS__lwp_create, AX
SYSCALL
JCC 2(PC)
NEGQ AX
@@ -38,12 +74,12 @@ TEXT runtime·lwp_tramp(SB),NOSPLIT,$0
CALL R12
// It shouldn't return. If it does, exit.
- MOVL $310, AX // sys__lwp_exit
+ MOVL $SYS__lwp_exit, AX
SYSCALL
JMP -3(PC) // keep exiting
TEXT runtime·osyield(SB),NOSPLIT,$0
- MOVL $350, AX // sys_sched_yield
+ MOVL $SYS_sched_yield, AX
SYSCALL
RET
@@ -54,7 +90,7 @@ TEXT runtime·lwp_park(SB),NOSPLIT,$0
MOVL unpark+16(FP), R10 // arg 4 - unpark
MOVQ hint+24(FP), R8 // arg 5 - hint
MOVQ unparkhint+32(FP), R9 // arg 6 - unparkhint
- MOVL $478, AX // sys__lwp_park
+ MOVL $SYS____lwp_park60, AX
SYSCALL
MOVL AX, ret+40(FP)
RET
@@ -62,13 +98,13 @@ TEXT runtime·lwp_park(SB),NOSPLIT,$0
TEXT runtime·lwp_unpark(SB),NOSPLIT,$0
MOVL lwp+0(FP), DI // arg 1 - lwp
MOVQ hint+8(FP), SI // arg 2 - hint
- MOVL $321, AX // sys__lwp_unpark
+ MOVL $SYS__lwp_unpark, AX
SYSCALL
MOVL AX, ret+16(FP)
RET
TEXT runtime·lwp_self(SB),NOSPLIT,$0
- MOVL $311, AX // sys__lwp_self
+ MOVL $SYS__lwp_self, AX
SYSCALL
MOVL AX, ret+0(FP)
RET
@@ -76,7 +112,7 @@ TEXT runtime·lwp_self(SB),NOSPLIT,$0
// Exit the entire program (like C exit)
TEXT runtime·exit(SB),NOSPLIT,$-8
MOVL code+0(FP), DI // arg 1 - exit status
- MOVL $1, AX // sys_exit
+ MOVL $SYS_exit, AX
SYSCALL
MOVL $0xf1, 0xf1 // crash
RET
@@ -86,7 +122,7 @@ TEXT runtime·exitThread(SB),NOSPLIT,$0-8
MOVQ wait+0(FP), AX
// We're done using the stack.
MOVL $0, (AX)
- MOVL $310, AX // sys__lwp_exit
+ MOVL $SYS__lwp_exit, AX
SYSCALL
MOVL $0xf1, 0xf1 // crash
JMP 0(PC)
@@ -95,7 +131,7 @@ TEXT runtime·open(SB),NOSPLIT,$-8
MOVQ name+0(FP), DI // arg 1 pathname
MOVL mode+8(FP), SI // arg 2 flags
MOVL perm+12(FP), DX // arg 3 mode
- MOVL $5, AX
+ MOVL $SYS_open, AX
SYSCALL
JCC 2(PC)
MOVL $-1, AX
@@ -104,7 +140,7 @@ TEXT runtime·open(SB),NOSPLIT,$-8
TEXT runtime·closefd(SB),NOSPLIT,$-8
MOVL fd+0(FP), DI // arg 1 fd
- MOVL $6, AX
+ MOVL $SYS_close, AX
SYSCALL
JCC 2(PC)
MOVL $-1, AX
@@ -115,7 +151,7 @@ TEXT runtime·read(SB),NOSPLIT,$-8
MOVL fd+0(FP), DI // arg 1 fd
MOVQ p+8(FP), SI // arg 2 buf
MOVL n+16(FP), DX // arg 3 count
- MOVL $3, AX
+ MOVL $SYS_read, AX
SYSCALL
JCC 2(PC)
MOVL $-1, AX
@@ -126,7 +162,7 @@ TEXT runtime·write(SB),NOSPLIT,$-8
MOVQ fd+0(FP), DI // arg 1 - fd
MOVQ p+8(FP), SI // arg 2 - buf
MOVL n+16(FP), DX // arg 3 - nbyte
- MOVL $4, AX // sys_write
+ MOVL $SYS_write, AX
SYSCALL
JCC 2(PC)
MOVL $-1, AX
@@ -145,25 +181,25 @@ TEXT runtime·usleep(SB),NOSPLIT,$16
MOVQ SP, DI // arg 1 - rqtp
MOVQ $0, SI // arg 2 - rmtp
- MOVL $430, AX // sys_nanosleep
+ MOVL $SYS___nanosleep50, AX
SYSCALL
RET
TEXT runtime·raise(SB),NOSPLIT,$16
- MOVL $311, AX // sys__lwp_self
+ MOVL $SYS__lwp_self, AX
SYSCALL
MOVQ AX, DI // arg 1 - target
MOVL sig+0(FP), SI // arg 2 - signo
- MOVL $318, AX // sys__lwp_kill
+ MOVL $SYS__lwp_kill, AX
SYSCALL
RET
TEXT runtime·raiseproc(SB),NOSPLIT,$16
- MOVL $20, AX // sys_getpid
+ MOVL $SYS_getpid, AX
SYSCALL
MOVQ AX, DI // arg 1 - pid
MOVL sig+0(FP), SI // arg 2 - signo
- MOVL $37, AX // sys_kill
+ MOVL $SYS_kill, AX
SYSCALL
RET
@@ -171,15 +207,15 @@ TEXT runtime·setitimer(SB),NOSPLIT,$-8
MOVL mode+0(FP), DI // arg 1 - which
MOVQ new+8(FP), SI // arg 2 - itv
MOVQ old+16(FP), DX // arg 3 - oitv
- MOVL $425, AX // sys_setitimer
+ MOVL $SYS___setitimer50, AX
SYSCALL
RET
// func walltime() (sec int64, nsec int32)
TEXT runtime·walltime(SB), NOSPLIT, $32
- MOVQ $0, DI // arg 1 - clock_id
+ MOVQ $CLOCK_REALTIME, DI // arg 1 - clock_id
LEAQ 8(SP), SI // arg 2 - tp
- MOVL $427, AX // sys_clock_gettime
+ MOVL $SYS___clock_gettime50, AX
SYSCALL
MOVQ 8(SP), AX // sec
MOVL 16(SP), DX // nsec
@@ -190,9 +226,9 @@ TEXT runtime·walltime(SB), NOSPLIT, $32
RET
TEXT runtime·nanotime(SB),NOSPLIT,$32
- MOVQ $3, DI // arg 1 - clock_id CLOCK_MONOTONIC
+ MOVQ $CLOCK_MONOTONIC, DI // arg 1 - clock_id
LEAQ 8(SP), SI // arg 2 - tp
- MOVL $427, AX // sys_clock_gettime
+ MOVL $SYS___clock_gettime50, AX
SYSCALL
MOVQ 8(SP), AX // sec
MOVL 16(SP), DX // nsec
@@ -206,7 +242,7 @@ TEXT runtime·nanotime(SB),NOSPLIT,$32
TEXT runtime·getcontext(SB),NOSPLIT,$-8
MOVQ ctxt+0(FP), DI // arg 1 - context
- MOVL $307, AX // sys_getcontext
+ MOVL $SYS_getcontext, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -216,7 +252,7 @@ TEXT runtime·sigprocmask(SB),NOSPLIT,$0
MOVL how+0(FP), DI // arg 1 - how
MOVQ new+8(FP), SI // arg 2 - set
MOVQ old+16(FP), DX // arg 3 - oset
- MOVL $293, AX // sys_sigprocmask
+ MOVL $SYS___sigprocmask14, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -224,10 +260,10 @@ TEXT runtime·sigprocmask(SB),NOSPLIT,$0
TEXT runtime·sigreturn_tramp(SB),NOSPLIT,$-8
MOVQ R15, DI // Load address of ucontext
- MOVQ $308, AX // sys_setcontext
+ MOVQ $SYS_setcontext, AX
SYSCALL
MOVQ $-1, DI // Something failed...
- MOVL $1, AX // sys_exit
+ MOVL $SYS_exit, AX
SYSCALL
TEXT runtime·sigaction(SB),NOSPLIT,$-8
@@ -237,7 +273,7 @@ TEXT runtime·sigaction(SB),NOSPLIT,$-8
// arg 4 - tramp
LEAQ runtime·sigreturn_tramp(SB), R10
MOVQ $2, R8 // arg 5 - vers
- MOVL $340, AX // sys___sigaction_sigtramp
+ MOVL $SYS___sigaction_sigtramp, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -290,7 +326,7 @@ TEXT runtime·mmap(SB),NOSPLIT,$0
SUBQ $16, SP
MOVQ R9, 8(SP) // arg 7 - offset (passed on stack)
MOVQ $0, R9 // arg 6 - pad
- MOVL $197, AX // sys_mmap
+ MOVL $SYS_mmap, AX
SYSCALL
JCC ok
ADDQ $16, SP
@@ -306,7 +342,7 @@ ok:
TEXT runtime·munmap(SB),NOSPLIT,$0
MOVQ addr+0(FP), DI // arg 1 - addr
MOVQ n+8(FP), SI // arg 2 - len
- MOVL $73, AX // sys_munmap
+ MOVL $SYS_munmap, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -317,7 +353,7 @@ TEXT runtime·madvise(SB),NOSPLIT,$0
MOVQ addr+0(FP), DI // arg 1 - addr
MOVQ n+8(FP), SI // arg 2 - len
MOVL flags+16(FP), DX // arg 3 - behav
- MOVQ $75, AX // sys_madvise
+ MOVQ $SYS_madvise, AX
SYSCALL
JCC 2(PC)
MOVL $-1, AX
@@ -327,7 +363,7 @@ TEXT runtime·madvise(SB),NOSPLIT,$0
TEXT runtime·sigaltstack(SB),NOSPLIT,$-8
MOVQ new+0(FP), DI // arg 1 - nss
MOVQ old+8(FP), SI // arg 2 - oss
- MOVQ $281, AX // sys___sigaltstack14
+ MOVQ $SYS___sigaltstack14, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -337,7 +373,7 @@ TEXT runtime·sigaltstack(SB),NOSPLIT,$-8
TEXT runtime·settls(SB),NOSPLIT,$8
// adjust for ELF: wants to use -8(FS) for g
ADDQ $8, DI // arg 1 - ptr
- MOVQ $317, AX // sys__lwp_setprivate
+ MOVQ $SYS__lwp_setprivate, AX
SYSCALL
JCC 2(PC)
MOVL $0xf1, 0xf1 // crash
@@ -350,7 +386,7 @@ TEXT runtime·sysctl(SB),NOSPLIT,$0
MOVQ size+24(FP), R10 // arg 4 - oldlenp
MOVQ dst+32(FP), R8 // arg 5 - newp
MOVQ ndst+40(FP), R9 // arg 6 - newlen
- MOVQ $202, AX // sys___sysctl
+ MOVQ $SYS___sysctl, AX
SYSCALL
JCC 4(PC)
NEGQ AX
@@ -363,7 +399,7 @@ TEXT runtime·sysctl(SB),NOSPLIT,$0
// int32 runtime·kqueue(void)
TEXT runtime·kqueue(SB),NOSPLIT,$0
MOVQ $0, DI
- MOVL $344, AX
+ MOVL $SYS_kqueue, AX
SYSCALL
JCC 2(PC)
NEGQ AX
@@ -378,7 +414,7 @@ TEXT runtime·kevent(SB),NOSPLIT,$0
MOVQ ev+24(FP), R10
MOVL nev+32(FP), R8
MOVQ ts+40(FP), R9
- MOVL $435, AX
+ MOVL $SYS___kevent50, AX
SYSCALL
JCC 2(PC)
NEGQ AX
@@ -388,8 +424,8 @@ TEXT runtime·kevent(SB),NOSPLIT,$0
// void runtime·closeonexec(int32 fd)
TEXT runtime·closeonexec(SB),NOSPLIT,$0
MOVL fd+0(FP), DI // fd
- MOVQ $2, SI // F_SETFD
- MOVQ $1, DX // FD_CLOEXEC
- MOVL $92, AX // fcntl
+ MOVQ $F_SETFD, SI
+ MOVQ $FD_CLOEXEC, DX
+ MOVL $SYS_fcntl, AX
SYSCALL
RET