1
0
mirror of https://github.com/golang/go synced 2024-09-30 04:24:29 -06:00

runtime: android/arm64 support

Not all tests passing yet, but a good chunk are.

Change-Id: I5daebaeabf3aecb380674ece8830a86751a8d139
Reviewed-on: https://go-review.googlesource.com/16458
Reviewed-by: Rahul Chaudhry <rahulchaudhry@google.com>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
David Crawshaw 2015-10-27 19:46:49 -04:00
parent babdb38320
commit ce8f49f42f
5 changed files with 61 additions and 0 deletions

View File

@ -87,6 +87,10 @@ const (
_EPOLL_CTL_ADD = 0x1
_EPOLL_CTL_DEL = 0x2
_EPOLL_CTL_MOD = 0x3
_AF_UNIX = 0x1
_F_SETFL = 0x4
_SOCK_DGRAM = 0x2
)
type timespec struct {
@ -167,6 +171,11 @@ type sigcontext struct {
__reserved [4096]byte
}
type sockaddr_un struct {
family uint16
path [108]byte
}
type ucontext struct {
uc_flags uint64
uc_link *ucontext

View File

@ -0,0 +1,13 @@
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#include "textflag.h"
TEXT _rt0_arm64_android(SB),NOSPLIT,$-8
MOVD $_rt0_arm64_linux(SB), R4
B (R4)
TEXT _rt0_arm64_android_lib(SB),NOSPLIT,$-8
MOVD $_rt0_arm64_linux_lib(SB), R4
B (R4)

View File

@ -43,6 +43,9 @@
#define SYS_epoll_ctl 21
#define SYS_epoll_pwait 22
#define SYS_clock_gettime 113
#define SYS_faccessat 48
#define SYS_socket 198
#define SYS_connect 203
TEXT runtime·exit(SB),NOSPLIT,$-8-4
MOVW code+0(FP), R0
@ -445,3 +448,33 @@ TEXT runtime·closeonexec(SB),NOSPLIT,$-8
MOVD $SYS_fcntl, R8
SVC
RET
// int access(const char *name, int mode)
TEXT runtime·access(SB),NOSPLIT,$0-20
MOVD $AT_FDCWD, R0
MOVD name+0(FP), R1
MOVW mode+8(FP), R2
MOVD $SYS_faccessat, R8
SVC
MOVW R0, ret+16(FP)
RET
// int connect(int fd, const struct sockaddr *addr, socklen_t len)
TEXT runtime·connect(SB),NOSPLIT,$0-28
MOVW fd+0(FP), R0
MOVD addr+8(FP), R1
MOVW len+16(FP), R2
MOVD $SYS_connect, R8
SVC
MOVW R0, ret+24(FP)
RET
// int socket(int domain, int typ, int prot)
TEXT runtime·socket(SB),NOSPLIT,$0-20
MOVW domain+0(FP), R0
MOVW typ+4(FP), R1
MOVW prot+8(FP), R2
MOVD $SYS_socket, R8
SVC
MOVW R0, ret+16(FP)
RET

View File

@ -2,7 +2,13 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#ifdef GOOS_android
#define TLS_linux
#endif
#ifdef GOOS_linux
#define TLS_linux
#endif
#ifdef TLS_linux
#define TPIDR TPIDR_EL0
#define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
#endif