mirror of
https://github.com/golang/go
synced 2024-09-30 06:24:33 -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:
parent
babdb38320
commit
ce8f49f42f
@ -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
|
||||
|
13
src/runtime/rt0_android_arm64.s
Normal file
13
src/runtime/rt0_android_arm64.s
Normal 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)
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user